Я использую композитор для загрузки всех моих зависимостей для моего приложения Yii2. Я также управляю вещами Bower с композитором, используя Asset Packagist.
Если я запускаю свое приложение в другую систему, я замечаю, что один и тот же composer.json
генерирует разные каталоги ресурсов.
Пример:
Я загружаю библиотеку rowGrid из Asset Packagist, используя следующую строку в файле composer.json
:
"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
. Здесь есть маленький g
в rowgrid.js
, что приводит к проблемам, если приложение пытается получить доступ к библиотеке rowGrid.
Почему композитор использует разные пути? ...и как мне справиться с этой проблемой?
//Редактировать:
Есть ли способ определить целевых директоров для конкретной беседки-библиотеки?
🤔 А знаете ли вы, что...
Yii предоставляет удобные средства для локализации приложений и мультиязычной поддержки.
Чтобы ответить на мой собственный вопрос в случае, если у кого-то такая же проблема:
В системе A ресурс rowGrid давно был установлен из fxp Asset Packagist. (не знаю, важно ли это) На данный момент загруженная библиотека rowGrid была установлена в Bower-ассет. Путь: vendor/bower-asset/rowGrid.js
Это также установлено/задокументировано в ìnstalled.json
файле.
Удаление глобального установленного плагина «fxp Asset Packagist» ничего не изменило, потому что сопоставление места установки rowGrid.js осталось нетронутым в файле installed.json
. Также composer update
ничего не менял.
Но: удаление пакета rowGrid из системы также удалило сопоставление в installed.json
. При повторной переустановке библиотеки rowGrid композитор получил ту же версию из Asset Packagist, но, вероятно, также получил новый путь установки, который теперь в нижнем регистре: rowgrid.js/
. Теперь библиотека установлена в vendor/bower-asset/rowgrid.js
То же самое (последний шаг) происходит в системе b: получение текущего пакета с тем же номером версии rowGrid, что и в системе a, которая была установлена в vendor/bower-asset/rowgrid.js
.