node зависимости в php проекте

Пакетные менеджеры созданы что бы удовлетворять зависимости. В мире php это composer, в мире js и css это npm или yarn. 

Я решил добавить в php проект зависимости от npm пакетов.  Для composer существует плагин fxp/composer-asset-plugin который может решить эту проблему. Но работает он очень долго, перебирая множество версий в зависимостях. Мне же хотелось использовать yarn т.к. он оставляет далеко позади и плагин и npm. В решении данной проблемы мне помог пакет foxy.

Для начала я создал в корне проекта файл package.json. Пример содержимого:

{
"dependencies": {
"bootstrap": "3.3.7"
}
}

Затем добавил в composer.json конфигурацию.

"config": {
"foxy": {
"manager": "yarn",
"enabled": true
},
},

В конфиге, в параметре manager можно указать какой пакетный менеджер использовать yarn или npm. После этого необходимо поставить пакет foxy

composer require foxy/foxy

Тперь про выполнении команд composer install или composer update foxy обойдет установленные пакеты, посмотрит наличие package.json с зависимостями, соберет один файл со всеми зависимостями, укажет его в dependencies коневого package.json и установит недостающие пакеты.

Возможно данный метод работает не идеально, но лучшего решения я не нашел. Работающий пример можно найти на гитхабе.

Теги:

npm php composer