我正在尝试布局一个包含多个本地软件包的项目结构,我希望它们共享相同的node_modules文件夹,以便npm安装速度快,磁盘空间使用率适中。独立使用时,每个包都有几百MB的依赖项。
node_modules
main
- package.json
packages
lib1
- package.json
lib2
- package.json
作为示例,每个包都依赖于react,gulp和webpack,它们将被定义为每个package.json
中的依赖项。
我正在尝试研究如何使用一个简单的脚本将每个软件包依赖项安装到node_modules中,但我无法使其工作。
cd main
echo "prefix = .." > .npmrc
npm install
for each in packages
cd package
echo "cat prefix = .." > .npmrc
npm install
然而,我无法使其发挥作用。
如果没有软件包名称, npm install --prefix ..
也无法正常工作,但由于我试图在克隆后安装所有软件包,因此无效。
答案 0 :(得分:0)
您可以直接在顶层package.json中为您的依赖项实际specify local paths:
...
"dependencies": {
"lib1": "./pacakges/lib1",
...
}
...
然后您可以在顶级目录中执行一个npm install
,它将安装依赖项,就像任何其他节点模块一样!
答案 1 :(得分:0)
@Chris ,虽然您想让 package.json 让自己工作但是为了快速部署,您只需压缩 npm_module 文件夹并添加到git repo,在部署时,您只需解压缩文件夹,然后运行
call
这会快得多。
希望这会对你有所帮助。