我正在通过作曲家更新我的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但是找不到它。
感谢您的帮助:)
答案 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。
答案 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
插件。