所以你以为你只需要 `npm install` 吗?再想想
我们张开双臂迎接包锁文件的诞生,它引入了:跨不同环境的确定性安装,以及跨团队协作的强制依赖性期望。
生活真美好!或者说,我当时就想……
如果我对项目package.json
文件做了修改,却忘了同时提交锁文件,会发生什么?
Yarn 和 npm 在依赖项安装过程中的行为相同。当它们检测到项目package.json
与锁文件之间的不一致时,它们会根据package.json
清单通过安装与锁文件中记录的版本不同的版本来补偿这种变化。
这种情况对于构建和生产环境来说可能是危险的,因为它们可能会引入非预期的包版本,并使锁文件的全部好处变得毫无意义。
幸运的是,有一种方法可以通过从锁文件中引用它们来告诉 Yarn 和 npm 遵循指定的一组依赖项及其版本。任何不一致都将中止安装。命令行应如下所示:
- 如果你使用 Yarn,请运行
yarn install --frozen-lockfile
- 如果你使用 npm run
npm ci
--
我还在一篇文章中写了您应该采用的完整的10 个 npm 安全最佳实践,其中包含一个高分辨率可打印 PDF,如您在下面看到的代码片段。
感谢阅读,也感谢Verdaccio 团队的Juan Picado与我合作。快来看看吧
文章来源:https://dev.to/lirantal/so-you-think-youre-just-gonna-npm-install-think-again-lh4