是什么导致npm软件包安装差异

时间:2019-04-08 15:37:43

标签: npm npm-install

我遇到一个问题,就是用于构建应用程序的两台计算机之间的npm软件包之间存在一些差异,导致网站的某些部分行为不同。我试图找出是什么原因导致npm正在安装的软件包之间的差异,我已经验证了我正在运行相同版本的nvm,nodejs和npm(并且使用nvm使用相同的版本可以激活该版本) npm list -g --depth=0)。我已经验证了这两个版本具有相同的全局安装软件包。我已经将package.json中的版本号设置为固定为我指定的值(版本号中没有'^'或'〜')。当我在项目中执行npm i时(即使在强制清除npm缓存之后),我也会在两台机器之间得到npm安装内容的差异:

added 1061 packages from 1024 contributors and audited 26052 packages in 121.826s
found 5 vulnerabilities (2 low, 3 moderate)


added 1110 packages from 1033 contributors and audited 17105 packages in 196.763s
found 6 vulnerabilities (2 low, 3 moderate, 1 high)

我该如何寻找:

  1. 这些区别是什么(除了尝试比较node_modules文件夹之外)
  2. 首先导致差异的原因是什么。我的理解是使用npm并修复版本应该不会出现这样的问题。

1 个答案:

答案 0 :(得分:1)

如果npm引起了不同的安装,请确保您确实在提交文件package-lock.json,并且所有计算机都在同一主要npm版本上。

这成为问题,因为锁定文件实际上包含已安装的确切版本,并且不同版本的依赖关系可能会有所不同。

引入此锁定文件时,开发人员养成了将其放入gitignore的习惯,因为它是npm生成的意外文件,并且该锁文件中有多个npm版本使用不同的哈希值。