我正在使用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库,则会导致问题。
为什么作曲家使用不同的路径名? ...我该如何解决这个问题?
//编辑:
是否可以为特定的凉亭库定义目标主管?
答案 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
中。