最近我部署了一些项目,如trntv/yii2-starter-kit等等。但是所有应用程序都在'@ vendor / bower'而不是'@ vendor / bower / bower-asset'上发布资产。我已经回答了问题Yii2 Composer manage package in bower and bower-vendor并解决了它。但我仍然对目录vendor/bower/bower-asset
感到困惑。 什么是bower / bower-asset在php应用程序中扮演的角色?它不是一个作曲家包,而是那里有很多主题存储。此外bower
是javascript的依赖管理,就像PHP的Composer
一样,但**如何解决PHP对js包的依赖**在这种情况下,我还没有安装node.js环境
答案 0 :(得分:2)
Composer Asset Plugin的想法是下载Bower / NPM软件包并管理它们的依赖关系,而无需安装Node JS,Bower和NPM(通过PHP / Composer)。此外,它还增加了为使用JavaScript库的PHP包添加JavaScript依赖项的可能性。
参见例如yii2-bootstrap Yii2扩展(PHP)依赖于Bootstrap(JS + CSS):
"bower-asset/bootstrap": "3.3.* | 3.2.* | 3.1.*"
当您运行composer install
或composer update
时,所有JS依赖项都将安装到vendor/bower
文件夹。
这是内置于核心,但非常模糊,受到很多批评,并且有计划在2.1.0
删除它(据我记得,它在2.0
发布之前被包含在内即使它不稳定)。不幸的是,这是必需的,并且没有正常的方法来禁用它。
您可以阅读有关扩展程序Github page的更多信息。
对于文件夹名称,如果您正确安装了所有内容,则应将其命名为bower
,而不是bower-asset
。
它自动命名,确保你有最新版本的插件:
composer global require "fxp/composer-asset-plugin:~1.1.1"
我建议甚至切换到:
composer global require "fxp/composer-asset-plugin:*"
如果您遇到问题或错误,请执行:
composer global remove "fxp/composer-asset-plugin"
然后重新安装,删除应用程序文件夹中的vendor
和composer.lock
并运行:
composer install