Composer使用相同的composer.json文件

时间:2019-03-25 13:31:19

标签: yii2 composer-php bower

我正在使用composer加载我的Yii2应用程序的所有依赖项。 我还使用Asset Packagist与作曲家一起管理凉亭。

如果我将自己的应用推广到其他系统,则会注意到,同一composer.json会生成不同的资源目录。

示例:

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

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

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

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

为什么作曲家使用不同的路径名? ...我该如何解决这个问题?

//编辑:

是否可以为特定的凉亭库定义目标主管?

1 个答案:

答案 0 :(得分:1)

在有人遇到相同问题的情况下回答我自己的问题:

在系统A上,很早以前就从fxp Asset Packagist安装了Bower资产rowGrid。 (不知道这是否重要)此时,下载的库rowGrid已安装到bower-asset路径中:vendor/bower-asset/rowGrid.js也已在ìnstalled.json文件中进行了设置/记录。 >

删除全局安装的“ fxp Asset Packagist” -Plugin并没有做任何更改,因为installed.json中未更改用于安装rowGrid.js的映射。此外,composer update并没有进行任何更改。

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

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