最佳答案
我是 npm 的新手,正试图理解如何重新创建用于部署的 node_modules
目录。
我们正在使用 npm ci
而不是 npm install
来确保在部署过程中有一个全新的开始。但是,当我们在没有任何标志的情况下运行它时,会得到以下错误:
修复上游依赖项冲突,或者使用—— force 或—— Heritage-peer-deps 重试此命令,以接受不正确的(可能中断的)依赖项解析。
--force
的 npm install
的 Ref = “ https://docs.npmjs.com/cli/v7/command/npm-install”rel = “ noReferrer”> document 如下(npm ci
的 Rel = “ noReferrer”> page < a href = “ https://docs.npmjs.com/cli/v7/command/npm-ci”rel = “ noReferrer”> page 上没有标志) :
F 或—— force 参数将强制 npm 获取远程资源,即使磁盘上存在本地副本。
与此同时,--legacy-peer-deps
的文件显示:
遗留对等依赖程序: 在安装时忽略所有对等依赖程序,使用 npm 版本4到版本6的风格。
这两个标志似乎都可以让 npm ci
毫无问题地生成 node_modules
目录,但是我仍然不清楚两者之间的区别。
据我所知,--force
听起来像是在最后依赖项下载获胜的基础上,并将覆盖以前下载的任何依赖项。同时,--legacy-peer-deps
似乎总是在安装过程中跳过对等依赖(不管是什么) ,即使没有问题。
这两个标志有什么不同,我们应该什么时候使用它们?