bower/bower-asset 在 php 应用程序(例如 yii2)中起什么作用

what a part does bower/bower-asset play in php application such as yii2

最近我部署了一些像trntv/yii2-starter-kit and so on.but all applications are publishing assets on '@vendor/bower' instead of'@vendor/bower/bower-asset'. I have read the question 这样的项目并解决了它。但我仍然对目录 vendor/bower/bower-asset.
感到困惑 bower/bower-asset 在 php 应用程序中起什么作用?它不是作曲家包,而是里面有很多主题商店。另外, bower 是对 javascript 的依赖管理,就像 Composer 对 PHP 一样,但是在这种情况下它是如何解决 PHP 对js包的依赖的我没有安装node.js环境?

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 中将其删除(据我所知,它在 [=19 发布之前包含在内) =] 即使它不稳定)。不幸的是,这是必需的,没有正常的方法来禁用它。

您可以阅读有关扩展程序 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