无法通过 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-update
和 composer 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 找不到的主要内容,如果未能解决你的问题,请参考以下文章