无法通过 composer bower-asset/jquery 更新 yii2 找不到

Posted

技术标签:

【中文标题】无法通过 composer bower-asset/jquery 更新 yii2 找不到【英文标题】:Cannot update yii2 via composer bower-asset/jquery could not be found 【发布时间】:2014-11-10 23:59:50 【问题描述】:

我正在通过 composer 更新我的 yii2,然后又恢复到旧的 beta 版本。

这是我的作曲家的错误:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package bower-asset/jquery could not be found in any version, there may be a typ
o in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setti
ng
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

尝试在 packagist 中搜索 bower-asset/jquery,但未找到。

感谢您的帮助:)

【问题讨论】:

他们正在重构资产管理部分。几个小时前发生了变化。 github.com/yiisoft/yii2-app-advanced/commit/… 该死的。现在不是试验和让新手放弃 Yii 的时候。如果他们的第一次安装不能“正常工作”,许多人可能会尝试其他框架。 【参考方案1】:

终于修好了,只是按照 UPGRADE.md 文档中的步骤操作

如果你使用 Composer 升级 Yii,你应该先运行以下命令(一次性)安装 composer-asset-plugin:

composer global require "fxp/composer-asset-plugin:^1.2.0"

(有关最新版本,请参阅http://www.yiiframework.com/doc-2.0/guide-start-installation.html#installing-from-composer。)

您可能还需要将以下代码添加到项目的composer.json 文件中:

"extra": 
    "asset-installer-paths": 
        "npm-asset-library": "vendor/npm",
        "bower-asset-library": "vendor/bower"
    

希望这会有所帮助:)

【讨论】:

我不得不运行 php composer.phar global require "fxp/composer-asset-plugin:1.0.0-beta1" 而不是 php composer.phar global require "fxp/composer-asset-plugin: 1.0.*@dev" 谢谢你帮了我很多:) 我发现如果我在执行此操作之前已经运行了composer update,我必须删除vendor/ 文件夹,否则错误会持续存在。 截至 2017 年 6 月 23 日... 我必须执行以下操作 sudo composer self-updatecomposer global require "fxp/composer-asset-plugin:^1.3.1" 我不必将“额外”部分添加到 composer.json。 注意:Bower 前段时间更改了他们的注册表 URL,现在已经宣布到 deprecate the old URL。旧注册表将于 2017 年 10 月 31 日停用。为了不影响您的工作,请确保将您的作曲家资产插件更新到最新版本:composer global require "fxp/composer-asset-plugin:^1.4.2"【参考方案2】:

对我来说有助于删除文件夹 ~/.composer 并执行命令:

php composer.phar global require "fxp/composer-asset-plugin:1.*"

然后再次运行

php composer.phar update

【讨论】:

或者获取最新的稳定版本:php composer.phar global require "fxp/composer-asset-plugin" 如果你没有 composer.phar 这应该也可以工作:composer global require "fxp/composer-asset-plugin:~1.1"【参考方案3】:

找到了更清洁的解决方案。只需在您的 composer.json 文件中添加以下存储库

"repositories": [
 
  "type": "composer",
  "url": "https://asset-packagist.org"
 
]

观看魔术

【讨论】:

它解决了我的 bower-asset/amcharts-stock 作曲家更新错误....!非常感谢..!!!!!! 这不再有效。 asset-packagist.org 看起来像是一个废弃的项目。这些软件包通常不可用,因此您必须手动访问该网站并“更新”每一个。【参考方案4】:

如果您不想使用fxp/composer-asset-plugin,那么您只需按照 Yii2 documentation 的这些简单说明进行操作即可。

使用asset-packagist 存储库

这种方式将满足大多数需要 NPM 或 Bower 包的项目的要求。

注意:从 2.0.13 开始,基本和高级应用程序模板都是 预配置为默认使用asset-packagist,所以你可以跳过这个 部分。

在项目的 composer.json 中,添加以下行:

"repositories": [
    
        "type": "composer",
        "url": "https://asset-packagist.org"
    
]

在您的应用程序配置中调整 @npm 和 @bower 别名:

$config = [
    ...
    'aliases' => [
        '@bower' => '@vendor/bower-asset',
        '@npm'   => '@vendor/npm-asset',
    ],
    ...
];

访问asset-packagist.org 了解它的工作原理。

【讨论】:

【参考方案5】:

如果您不需要更新 bower-asset,您可以在 composer.json 文件中的 yiisoft/yii2. 之前要求 yidas/yii2-composer-bower-skip

"require": 
    "php": ">=5.4.0",
    "yidas/yii2-composer-bower-skip": "~2.0.0",
    "yiisoft/yii2": "~2.0.5",
    "yiisoft/yii2-bootstrap": "~2.0.0"

之后,您可以顺利更新 Composer,无需 bower-asset。

见https://github.com/yidas/yii2-composer-bower-skip

【讨论】:

@Alex 很高兴听到这个消息 :-)【参考方案6】:

如 YII2 存储库文档中所述:https://asset-packagist.org/site/about 我们可以通过在配置中的这些文件夹上添加别名来解决这个问题。 它看起来像这样:

   $config = [
      ...
     'aliases' => [
        '@bower' => '@vendor/bower-asset',
        '@npm'   => '@vendor/npm-asset',
     ],
     ...
  ];

完美运行!

【讨论】:

【参考方案7】:

简单干净的解决方案:

在 composer.json 中,只需将 bower-asset/jquery 行替换为: "yidas/yii2-bower-asset":"*"


我建议我们还将 bower-asset/datatables 添加到 yidas/yii2-bower-asset


我对添加 fxp/composer-asset-plugin 的可接受解决方案的问题是该插件显着降低了作曲家系统的速度,影响无处不在,并不总是可跨操作系统和环境移植, PHP7.2 存在与方法名称不一致有关的错误。所以,我更喜欢我的开发速度更快、运行速度更快、更本地化和更兼容的解决方案。

【讨论】:

【参考方案8】:

我尝试了所有提到的步骤,例如在main.php中添加以下内容

$config = [
    ...
    'aliases' => [
        '@bower' => '@vendor/bower-asset',
        '@npm'   => '@vendor/npm-asset',
    ],
    ...
];

composer.json

"repositories": [
 
  "type": "composer",
  "url": "https://asset-packagist.org"
 
]

执行“composer install/update”仍然没有安装 yii2-bootstrap 提供的 bower 包。

我发现,我使用 composer.phar 2x 来设置它。我将 composer.phar 降级为 1x 并且不需要fxp/composer-asset-plugin 插件,一切正常。

【讨论】:

【参考方案9】:

以防万一有人升级 Yii 2.0.41 - 2.0.43, 应该注意的是,您需要安装“外部”凉亭资产。

运行以下命令

composer require yidas/yii2-bower-asset

然后,需要更新配置中的别名(取决于您的结构),以便 Yii 处理新的 bower-asset 文件夹。

// here is important part
'aliases' => [
    '@bower' => '@vendor/yidas/yii2-bower-asset/bower',
],

//below is just another config just ignore. example purpose don't copy
'components' => [
    'db' => [

然后,重新加载您的 Yii 应用。应该没问题。

-额外-

这里是 composer.json 的示例,供任何需要更新到 2.0.43 的人使用


"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Application Template",
"keywords": ["yii2", "framework", "advanced", "application template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": 
    "issues": "https://github.com/yiisoft/yii2/issues?state=open",
    "forum": "http://www.yiiframework.com/forum/",
    "wiki": "http://www.yiiframework.com/wiki/",
    "irc": "irc://irc.freenode.net/yii",
    "source": "https://github.com/yiisoft/yii2"
,
"minimum-stability": "dev",
"require": 
    "php": ">=5.4.0",
    "yiisoft/yii2": "2.0.43",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "~2.0@dev",
    "yiisoft/yii2-redis": "~2.0.0",
    "yiisoft/yii2-elasticsearch": "~2.0.0",
    "bryglen/yii2-apns-gcm": "1.0.5",
    "snhccm/baidu-push": "dev-master",
    "google/cloud": "dev-master",
    "minishlink/web-push": "6.0.7",
    "understeam/yii2-fcm": "~0.1",
    "yidas/yii2-bower-asset": "2.0.13"
,
"require-dev": 
    "codeception/codeception": "*",
    "yiisoft/yii2-debug": "*",
    "yiisoft/yii2-gii": "*",
    "yiisoft/yii2-faker": "*"
,
"config": 
    "process-timeout": 1800
,
"extra": 
    "asset-installer-paths": 
        "npm-asset-library": "vendor/npm",
        "bower-asset-library": "vendor/bower"
    

【讨论】:

以上是关于无法通过 composer bower-asset/jquery 更新 yii2 找不到的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 vendor出现bower-asset这么解决

walle上线部署系统

安装yii2并开启调试工具(亲自操作并记录)

无法通过Composer加载类

节点无法通过 Docker Compose 连接到 Redis

无法通过 composer 和 flex 安装 symfony/console:3.2