Composer генерирует разные имена каталогов пакетов с одним и тем же файлом composer.json

Я использую композитор для загрузки всех моих зависимостей для моего приложения 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 предоставляет удобные средства для локализации приложений и мультиязычной поддержки.


1
173
1

Ответ:

Решено

Чтобы ответить на мой собственный вопрос в случае, если у кого-то такая же проблема:

В системе 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 .