bii / bower-asset在php应用程序中扮演什么角色,例如yii2

时间:2016-01-22 05:37:20

标签: yii2 composer-php bower

最近我部署了一些项目,如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环境

1 个答案:

答案 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 installcomposer 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"

然后重新安装,删除应用程序文件夹中的vendorcomposer.lock并运行:

composer install