我有一个包含子模块的父项目。该模块具有自己的bower.json
(指定模块依赖项)和.bowerrc
(指定应将这些文件下载到哪个文件夹)。这些依赖性在模块HTML中链接。
父项目使用package.json
来管理Node依赖项。
为了防止用户同时运行npm install
(用于父依赖项)和cd module
,bower install
和cd ../
(用于模块依赖项),我在postinstall
中添加了package.json
脚本:
"scripts": {
"postinstall" : "./node_modules/.bin/bower install ./module/ --config.directory=\"./module/public/bower_components\""
}
请注意,我可以让Bower将模块的依赖项安装到
/module/public/bower_components
中的唯一方法是在directory
脚本中显式声明postinstall
。但是
./module/.bowerrc
已经包含此信息,因此理想情况下,我想“使” bower install
意识到这一点。这也将使package.json
更易于维护,并且module
更易于移植。我还尝试使用父级
postinstall
中的package.json
钩子(Hook)将Bower依赖项和postinstall
脚本传输到模块的package.json
中,以在模块目录中运行npm install
。但是这种方法在模块中结束。依赖项将下载到父级的node_modules
文件夹中。有没有更好的方法来解决这个问题?
最佳答案
Bower config使用以下优先级顺序来解析构建的配置。
来自http://bower.io/docs/config/的Bower文档
通过--config 的
在您的情况下,您可以将.bowerrc文件与package.json放在同一文件夹中,但可以使用前缀module/public配置所有属性,以使设置生效。
我喜欢您从package.json的一个位置管理所有依赖项的想法。