在Docker中,NodeJs离线开发

我试图用docker实现一个开发人员工作stream程,具有离线开发的能力(如在不同的依赖关系的分支之间切换时不需要运行npm install

最直观的方法是将依赖关系存储在源代码pipe理中。 这有其自己的问题,尤其是在使用编译依赖关系的模块时。 我尝试了几乎所有我能想到的东西,并发现:

  • npm pack我的项目依赖关系,存储在源代码,但这不会存储我的依赖关系的依赖项
  • 将node_modules存储在源代码中,将其复制到容器并运行npm rebuild但实际上并没有触发重build
  • 运行npm install --no-registry所以t触发重build,但不会尝试调用,但实际上它实际上调用了公共registry
  • 我见过的像Node-PAC的其他解决scheme似乎被抛弃了
  • npmbox看起来是最有希望的,但是它要求将其安装在全局目标上,除非我们开始在生产环境中部署容器,否则它将在我可以构build而不是生产的容器中工作。

这是徒劳的吗? 缺lessnetworking访问是很less见的,只有在安装新模块或在具有不同依赖关系的修订之间移动时才需要

另一个select是设置一个专用的npm存储库,并将其configuration为caching公共存储库。 有几个选项来实现这一点,我会build议尝试Nexus: https : //www.sonatype.com/nexus-repository-oss