docker 离线 NodeJs 开发
NodeJs development offline in docker
我正在尝试使用 docker 实现开发人员工作流,能够离线开发(例如,当您在分支之间切换时不必 运行 npm install
有不同的依赖关系)
最直观的方法是将依赖项存储在源代码管理中。这有其自身的问题,尤其是在使用编译依赖项的模块时。我已经尝试了几乎所有我能想到并找到的东西:
npm pack
ing 我的项目依赖项,存储在源代码中,但这并不存储我的依赖项的依赖项
- 将 node_modules 存储在源中,将其复制到容器中并 运行ning
npm rebuild
但它 doesn't actually trigger a rebuild
- 运行ning
npm install --no-registry
所以 t 触发重建但不尝试调用,但它实际上调用了 public 注册表
- 我见过的其他解决方案 Node-PAC 似乎已被放弃
- npmbox 看起来最有前途,但它要求将其安装在全局目标上,这将在我可以构建但不能在生产环境中运行的容器中运行,除非我们开始在生产环境中部署容器。
这是徒劳吗?缺乏网络访问的情况很少见,只有在安装新模块或在具有不同依赖关系的修订版之间移动时才真正需要
另一种选择是设置私有 npm 存储库并将其配置为缓存 public 存储库。有几个选项可以实现这个,我建议试试 Nexus:https://www.sonatype.com/nexus-repository-oss
我正在尝试使用 docker 实现开发人员工作流,能够离线开发(例如,当您在分支之间切换时不必 运行 npm install
有不同的依赖关系)
最直观的方法是将依赖项存储在源代码管理中。这有其自身的问题,尤其是在使用编译依赖项的模块时。我已经尝试了几乎所有我能想到并找到的东西:
npm pack
ing 我的项目依赖项,存储在源代码中,但这并不存储我的依赖项的依赖项- 将 node_modules 存储在源中,将其复制到容器中并 运行ning
npm rebuild
但它 doesn't actually trigger a rebuild - 运行ning
npm install --no-registry
所以 t 触发重建但不尝试调用,但它实际上调用了 public 注册表 - 我见过的其他解决方案 Node-PAC 似乎已被放弃
- npmbox 看起来最有前途,但它要求将其安装在全局目标上,这将在我可以构建但不能在生产环境中运行的容器中运行,除非我们开始在生产环境中部署容器。
这是徒劳吗?缺乏网络访问的情况很少见,只有在安装新模块或在具有不同依赖关系的修订版之间移动时才真正需要
另一种选择是设置私有 npm 存储库并将其配置为缓存 public 存储库。有几个选项可以实现这个,我建议试试 Nexus:https://www.sonatype.com/nexus-repository-oss