我遇到一个问题,就是用于构建应用程序的两台计算机之间的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)
我该如何寻找:
答案 0 :(得分:1)
如果npm引起了不同的安装,请确保您确实在提交文件package-lock.json
,并且所有计算机都在同一主要npm版本上。
这成为问题,因为锁定文件实际上包含已安装的确切版本,并且不同版本的依赖关系可能会有所不同。
引入此锁定文件时,开发人员养成了将其放入gitignore的习惯,因为它是npm生成的意外文件,并且该锁文件中有多个npm版本使用不同的哈希值。