我们有10个以上的prod服务器实例,每次更新依赖关系时,清理和重新安装的声音都受到更好的控制,但速度也有所降低。
问题是devops团队抱怨每次package.json更改时进行清理(除去现有的node_modules之后) npm install 所花费的时间。 如果确实在现有的node_modules上运行update或install,我们有时会发现在prod上的构建中断。
是否有用于生产部署的最佳实践? 我如何在这里优化安全地更新node_modules的过程?
答案 0 :(得分:0)
在较新的npm版本中,有一项功能可以锁定依赖项的版本。
与package.json一起存在一个名为package-lock.json的文件。那个锁文件 在开发环境上安装依赖版本时,它将锁定依赖版本。因此,当您使用npm install从package.json将其安装到生产环境时,它将从package-lock.json文件中获取锁定版本,并将安装与开发环境相同的特定版本。
这意味着您不需要在每次生产时都清洁node_module文件夹。您可以只从package.json文件安装新添加的依赖项,其版本将从package-lock.json文件中获取。
还有一个名为“ yarn”的软件包管理器,它提供相同的功能,但是如果您坚持使用npm,则现在可以在新的npm版本中使用它。
答案 1 :(得分:0)
几个月后,我对此感到震惊。我在NPM上遇到了这个软件包: npm-check-updates。
npm-check-updates允许您将package.json依赖项升级到最新版本。
您所要做的就是运行
这对我来说很好。