Composer генерирует разные имена каталогов пакетов с тем же файлом composer.json - PullRequest
1 голос
/ 25 марта 2019

Я использую composer для загрузки всех моих зависимостей для моего приложения Yii2.Я также управляю вещами с помощью композитора с помощью Asset Packagist.

Если я разверну свое приложение в другой системе, я замечу, что один и тот же composer.json генерирует разные каталоги восстановления.

Пример:

Я загружаю библиотеку rowGrid из Asset Packagist, используя следующую строку в файле composer.json:

"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 Ответ

1 голос
/ 26 марта 2019

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

В системе A, rowGrid актива бауэра был установлен давно из fxp Asset Packagist.(не знаю, если это важно). В это время загруженная библиотека rowGrid была установлена ​​в путь ресурса bower: vendor/bower-asset/rowGrid.js Это также задано / задокументировано в файле ìnstalled.json.

Удаление глобального установленного "fxp Asset Packagist" -Plugin ничего не изменило, потому что отображение, куда установить rowGrid.js, не было затронуто в installed.json.Также composer update ничего не изменило.

Но: удаление пакета rowGrid из системы a также удалило отображение в installed.json.При повторной установке библиотеки rowGrid композитор получил ту же версию из Asset Packagist, но, вероятно, также получил новый путь установки, который теперь стал строчным: rowgrid.js/.Теперь библиотека установлена ​​в vendor/bower-asset/rowgrid.js

То же (последний шаг) произошло в системе b: выбор текущего пакета с тем же номером выпуска rowGrid, что и в системе a, установленной в vendor/bower-asset/rowgrid.js.

...