我有一个包含子模块的父项目。该模块有自己的bower.json
指定模块依赖关系和.bowerrc
它指定这些应该下载到哪个文件夹。这些依赖项链接在模块 HTML 中。
父项目使用package.json
管理节点依赖项。
为了防止用户必须同时运行 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
更便携。我也尝试过转移 Bower 依赖和
postinstall
脚本到我的模块的package.json
, 使用 postinstall
卡在 parent 的package.json
运行 npm install
在模块目录中。但是这种方法以模块结束。依赖项被下载到父级的 node_modules
文件夹。有没有更好的方法来解决这个问题?
最佳答案
Bower 配置使用以下优先顺序来解析构建的配置。
来自 http://bower.io/docs/config/ 的 Bower 文档
在您的情况下,您可以将 .bowerrc 文件放在与 package.json 相同的文件夹中,但使用前缀 module/public 配置所有属性以使您的设置正常工作。
我确实喜欢您从 package.json 中的一个位置管理所有依赖项的想法。
关于dependencies - 调用 bower install 时指定 .bowerrc 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28865437/