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