gpt4 book ai didi

node.js - 如何稳定 {Node} npm 依赖系统?

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:53 25 4
gpt4 key购买 nike

我正在使用 angular-cli 并使用 Angular2 构建 SPA。我的应用程序有一个 Jenkins 构建系统,每次项目存储库发生更改时,都会触发构建,基本上删除整个 node_modules 文件夹,然后执行 npm install em> 接下来是我的构建过程。所有这些都是在 Linux 机器上远程完成的。

问题:
现在我面临的问题是二级和三级依赖关系。我使用 npm 安装的大多数依赖项(如果不是全部)都有自己的 packagae.json 文件,而这些文件又拥有自己的文件,依此类推。因此,即使我通过删除插入符号或波形符来卡住主 package.json 文件中的版本,我也无法控制二级和三级依赖项的版本。这会导致大量 UNMET PEER DEPENDENCY 错误,因为一个依赖项需要同一组件的一个版本,而另一个依赖项需要另一个版本!

问题:
所以我的问题是,如何确保这种情况不会发生并实现稳定的依赖安装?

最佳答案

您可以保持 package.json 不变并运行 npm Shrinkwrap,这将创建一个新文件 npm-shrinkwrap.json运行它时安装的所有包层次结构的确切版本。

如果您提交此文件,下次运行 npm install 时,npm 应该检测到该文件并尊重它。

文档:
https://docs.npmjs.com/cli/shrinkwrap

附注

另一个工作原理类似的选项是 Facebook 的 yarn npm 客户端(类似于本地 npm 工具的工具)。

它使用自己的 yarn.lock 文件,并且速度要快得多,因为它将依赖项缓存在自己的共享缓存中,从而使下次安装速度更快。

但是对于构建服务器上的用例,设置它可能会更困难。这就是为什么我强调 npm 本身的答案。

关于node.js - 如何稳定 {Node} npm 依赖系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41296704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com