У меня есть родительский проект, содержащий дочерний модуль. Модуль имеет свой собственный bower.json, который определяет зависимости модуля и .bowerrc, который указывает, в какую папку они должны быть загружены. Эти зависимости связаны в модуле HTML.
Родительский проект использует package.json для управления зависимостями Node.
Чтобы запретить пользователям запускать как npm install (для родительских зависимостей), так и cd module, bower install, cd ../ (для зависимостей модулей), я добавил postinstall script to package.json:
"scripts": {
"postinstall" : "./node_modules/.bin/bower install ./module/ --config.directory=\"./module/public/bower_components\""
}
Обратите внимание, что единственным способом, с помощью которого я мог бы установить Bower для установки зависимостей модуля в /module/public/bower_components, было явно указать directory в postinstall script.
Однако ./module/.bowerrc уже содержит эту информацию, поэтому в идеале я хотел бы "сделать" bower install осведомленным об этом. Это также облегчит обслуживание package.json, а module - более портативное.
Я также попытался передать зависимость Bower и postinstall script в мой модуль package.json, используя крюк postinstall в родительском package.json для запуска npm install в каталоге модуля. Но этот подход заканчивается модулем. зависимостей, загружаемых в родительскую папку node_modules.
Есть ли лучший способ решить эту проблему?