是什么导致 npm 包安装差异

What is causing npm package install differences

我遇到一个问题,即用于构建应用程序的两台机器之间的 npm 包存在一些差异,导致我网站的某些部分表现不同。我试图弄清楚是什么导致了 npm 安装的包之间的差异,我已经验证我 运行 相同版本的 nvm、nodejs 和 npm(并且相同的版本是使用 npm list -g --depth=0 与 nvm 一起激活)。我已经验证两者在相同版本中具有相同的全局安装包。我已将 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 并修复版本不应该有这样的问题。

如果 npm 导致不同的安装,请确保您确实提交了文件 package-lock.json,并且所有计算机都使用相同的主要 npm 版本。

这成为一个问题,因为锁定文件实际上包含安装的确切版本,并且不同的版本可能在它们的依赖性方面存在差异。

引入这个锁文件后,开发人员养成了将这个文件放入他们的 gitignore 的习惯,因为它是 npm 生成的意外文件,并且多个 npm 版本在锁文件中使用不同的哈希值。