似乎 yii2 之间存在一些 Unresolved 冲突 使用 asset-packagist.org 方法,或更旧的方法 fxp Assets 插件。 我现在正在处理一个项目,打算使用 Assets 包装师。所有设置都显示正常,但 Yii2 似乎忽略了 这一切并坚持使用不存在的 bower 目录。 使用 asset-packagist 方法,该目录称为 Bower-asset。
设置:为了使其工作,我们使用(在 common/config/base.php 中):
'aliases' => [
'@bower' => '@vendor/bower-asset',
'@npm' => '@vendor/npm-asset',
],
...在composer.json中我们设置:
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
}
],
这并没有帮助,但是,仍然出现错误:
The file or directory to be published does not exist:
C:\....common\config/../../vendor/bower/semantic/dist
还尝试使用(在composer.json中)关闭fxp:
"config": {
"fxp-asset": {
"enabled": false
}
},
还尝试了命令:
composer global remove fxp/composer-asset-plugin --no-plugins
同样的事情。
注意:该项目是在 Linux 中开发的,我现在尝试在 Windows 10 和本地主机上的 XAMPP 中打开它。如果与 Windows 相关,请随时告诉我。
最佳答案
为了让它发挥作用,我必须选择 fxp-plugin,并放弃 asset-packagist 方式(鉴于我目前所掌握的知识,它根本行不通),如下所示:
- 从composer.json的存储库部分中删除了对
asset-packagist.org
的引用(在我的例子中,我删除了整个存储库部分。:
"repositories": [ { "type": "composer", "url": "https://asset-packagist.org" } ],
- 安装最新的composer fxp-plugin,当前为1.4.6:
composer global require "fxp/composer-asset-plugin:~1.4.6"
- 删除了 common/config/base.php 中的 @bower -> Bower-asset(以及 npm 的别名)。
- 然后,如果您将供应商中的 Bower-asset 文件夹重命名为“bower”,现在它会找到正确的路径。但您永远不应该更改供应商文件夹中的任何内容,而是将此
fxp-asset
部分添加到composer.json 中的“config”:
"config": { "process-timeout": 1800, "fxp-asset":{ "installer-paths": { "npm-asset-library": "vendor/npm", "bower-asset-library": "vendor/bower" } } }
- 然后删除供应商文件夹,删除 Composer.lock 文件并运行
composer install
。
关于linux - yii2 : use fxp assets plugin or asset-packagist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59611182/