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。