Yii2:使用 fxp assets 插件还是 asset-packagist?

Yii2: use fxp assets plugin or asset-packagist?

似乎 yii2 之间有一些未解决的冲突 使用 asset-packagist.org 方法,或者旧的 fxp 资产插件。 我现在正在处理一个项目,打算使用 资产包装师。所有设置都显示正常,但 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 的那些)别名
  • 然后,如果您将 vendor 中的 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"
            }
        }
    }
  • 然后删除 vendor 文件夹,删除 Composer.lock 文件和 运行 composer install