Composer 使用相同的 composer.json 文件生成不同的包目录名称

Composer generates differnt package directory names with same composer.json file

我正在使用 composer 加载我的 Yii2 应用程序的所有依赖项。 我还使用 Asset Packagist 与 composer 一起管理 bower 的东西。

如果我将我的应用程序部署到不同的系统,我注意到,相同的 composer.json 会生成不同的资源目录。

示例:

我使用 composer.json 文件中的以下行从 Asset Packagist 加载 rowGrid 库:

"bower-asset/rowGrid.js": "1.0.6",

在我的开发机器上,这会创建一个这样的文件夹 /path/to/vendor/stuff/bower-asset/rowGrid.js

运行同一个composerfile在不同机器上,composer为rowGrid库创建如下路径:path/to/vendor/stuff/bower-asset/rowgrid.js。在这里,rowgrid.js 中有一个小的 g,如果应用程序试图访问 die rowGrid 库,这会导致问题。

为什么 composer 使用不同的路径名? ...我该如何处理这个问题?

//编辑:

有没有办法为特定的 bower-library 定义目标导向器?

如果有人有同样的问题,回答我自己的问题:

在系统 A 上,bower asset rowGrid 是很久以前从 fxp Asset Packagist 安装的。 (不知道,这个重要不重要)这时候下载的库rowGrid安装到bower-asset Path: vendor/bower-asset/rowGrid.js 这个也是set/documented 在ìnstalled.json 文件。

删除全局安装的 "fxp Asset Packagist"-插件并没有改变任何东西,因为映射,安装位置 rowGrid.js,在 installed.json 中没有被触及。另外 composer update 没有任何改变。

但是:从系统 a 中删除包 rowGrid 也会删除 installed.json 处的映射。再次重新安装 rowGrid 库时,composer 从 Asset Packagist 获取了相同的版本,但可能还收到了新的安装路径,现在是小写的:rowgrid.js/。该库现在安装在 vendor/bower-asset/rowgrid.js

相同的(最后一步)发生在系统 b 上:获取与系统 a 具有相同 rowGrid 版本号的当前包,该包安装在 vendor/bower-asset/rowgrid.js 中。