我试图实现与码头工人开发人员的工作流程,以发展下线的能力(如,不必运行npm install
当您对具有不同的依赖性分支机构之间进行切换)发展的NodeJS离线搬运工
的最直观的方法是将依赖关系存储在源代码管理中。这有它自己的问题,尤其是在使用编译依赖关系的模块时。我已经试过几乎所有我能想到的,发现:
npm pack
荷兰国际集团我的项目的依赖,在源存储但这并不存储我的依赖的依赖- 存储源node_modules,复制此到容器运行
npm rebuild
但doesn't actually trigger a rebuild - 运行
npm install --no-registry
因此T触发重建,但不尝试调用出来,但它实际上调用了公众注册表反正 - 其他解决方案我见过像Node-PAC似乎抛弃
- npmbox看起来最有前途,但它要求将其安装在全局目标上,除非我们开始在生产环境中部署容器,否则它将在可构建但不能生产的容器中工作。
这是徒劳的努力吗?缺少网络访问非常罕见,只有在安装新模块或在具有不同依赖关系的修订之间移动时才需要。
虽然我不涉及需求(我使用Canonical的Juju Local容器实现为本地开发容器运行),这里有一个想法:自node_modules是一个临时的gitignored文件夹,为什么不创建任何分支的所有依赖关系的集合,并将它们存储在项目的package.json文件的devDependencies中。这样,所有node_modules都可用于任何正在切换到的分支。 *警告:如果您在分支机构中拥有并行版本的NPM模块,这将不起作用* – SylonZero
这是我将来预见的问题的一部分:在这种假设情况下,可能的情况是依赖项的版本会在关闭修订版。 – BrDaHa