Npm用于“私有依赖”的“类文件系统”pipe理
我试图做这个设置:
- 根是与git项目相对应的文件夹
- root / projectA是一个节点模块
- root / projectB是一个节点模块,需要projectA。
一些非常重要的限制
- 我不想将任何这些节点项目发布到npm.org
- 我不能为每个项目有一个不同的git存储库
- 项目A在开发过程中一直在变化,所以每次更改文件时都不得不重新发布它是不可接受的
- 最后,我希望能够“分发”一个包含projectB / node_modules / projectA(在projectB中运行代码所需的所有东西)
当前解决scheme
所以,为了发展,我用一个npm链接来解决这个问题。 所以:
- 我没有在“projectB”的package.json中声明“projectA”(如果我这样做了,'npm install'正确地抱怨项目在npm中不可用)
- 每个新开发者都要做三个步骤:
- 结帐根
- cd root / projectB
- npm链接../projectA
随着依赖数量的增长,这变得非常痛苦。 此外,依赖关系是“本地”安装,并链接,所以使“分配”
潜在解决scheme的问题
据我所知:
- 使用像reggie这样的“私有存储库”,或者一个实际的npm镜像,会要求我们每次改变它时都要“npm publish”projectB; 这对发展是不可接受的
- git将无法工作,因为我们所有的节点项目都在同一个git项目中
- 本能地,我很喜欢在我的package.json中使用相对path,但是这个特性现在已经被拒绝了好几年了 。 这可能意味着有一个明显的解决scheme,我错过了。
有没有办法处理这个问题,而不必每次发布所有内容,每次更换一行?
谢谢
像这样的结构应该只是工作(我在本地testing):
root/ node_modules/ projectA/ projectB/
还要确保在项目的package.json中添加"private": true
,并添加类似的东西
"dependencies": { "projectA": "*" },
到你的projectB的package.json。