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

时间:2014-09-17 04:22:16

标签: composer-php yii2

我正在通过作曲家更新我的yii2,然后又恢复到旧的测试版。

这是我作曲家的错误:

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但是找不到它。

感谢您的帮助:)

8 个答案:

答案 0 :(得分:96)

最后修复它,只需按照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"
    }
}

希望这会有所帮助:)

答案 1 :(得分:17)

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

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

然后再跑一次

php composer.phar update

答案 2 :(得分:8)

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

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

并观看魔术

答案 3 :(得分:1)

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

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

之后,您可以在没有bower-asset的情况下顺利更新Composer。

  

请参阅https://github.com/yidas/yii2-composer-bower-skip

答案 4 :(得分:1)

如果您不想使用fxp/composer-asset-plugin,那么您所要做的就是遵循Yii2 documentation中的这些简单说明。

使用资产包装专家存储库

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

  

注意:从2.0.13版本开始,基本和高级应用程序模板都是   预配置为默认使用资产打包工具,因此您可以跳过此操作   部分。

在项目的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 :(得分:0)

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

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

完美无缺!

答案 6 :(得分:0)

简单明了的解决方案:

在composer.json中,只需将bower-asset / jquery行替换为:     &#34; yidas / yii2-亭子资产&#34;:&#34; *&#34;

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

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

答案 7 :(得分:0)

我尝试了所有提到的步骤,例如在 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 插件。