当尝试使用npm i命令安装npm包时,我得到了以下异常:
我尝试重新安装Node.js包,并使用以下方法将代理设置为关闭:
set HTTP_PROXY=
set HTTPS_PROXY=
问题仍然存在。我哪里做错了?
更新:
执行以下命令时:
npm install --legacy-peer-deps
系统显示如下错误:
当尝试使用npm i命令安装npm包时,我得到了以下异常:
我尝试重新安装Node.js包,并使用以下方法将代理设置为关闭:
set HTTP_PROXY=
set HTTPS_PROXY=
问题仍然存在。我哪里做错了?
更新:
执行以下命令时:
npm install --legacy-peer-deps
系统显示如下错误:
当前回答
尝试以下两种方法来解决此问题:
选项1:删除文件夹“node_modules”和文件“package_lock”。Json: NPM cache clean -force after NPM I -force 选项2:执行npm install——save——legacy-peer-deps命令
其他回答
Use
npm install --legacy-peer-deps
这对我很管用。
免责声明:这假设你使用的是npm v7
注意:如果你遵循兄弟注释的指示,它将创建一个用户范围的配置,不会在队友/机器/构建机器人之间保持同步。
基于项目的遗留对等依赖
您可能希望将遗留同行deps与您的项目绑定在一起,以便它在机器/开发人员之间扩散,而不会污染您的其他项目。
npm config set legacy-peer-deps true --location project
这将创建一个本地文件在.npmrc,你可以提交到你的存储库:
legacy-peer-deps=true
然后,你就可以跑了:
npm install
然后提交更新后的锁文件。
记住,位置,位置,位置:
per-project configuration (/path/to/my/project/.npmrc, see more): npm config set legacy-peer-deps true --location project per-user configuration (defaults to $HOME/.npmrc, see more) npm config set legacy-peer-deps true --location user or, as the default location is user anyway: npm config set legacy-peer-deps true global configuration (defalts to $PREFIX/etc/npmrc, see more) npm config set legacy-peer-deps true --location global or, as --global infers --location global npm config set legacy-peer-deps true --global
对于某些项目,修复依赖关系可能不是简单的
在我的案例中,我们有一个遗留版本的关键依赖项想要引入webpack v3(!) -但这是该项目的构建依赖项。
短期内最好的解决方案是使用遗留peer-deps作为保留。
如果你在紧要关头,你也可以考虑对依赖项进行分叉,并相应地调整它的对等依赖项——它们将你的项目指向分叉。
只需做两个简单的步骤:
首先,在终端中执行这个命令。
npm config set legacy-peer-deps true
其次,清除缓存:
npm cache clean --force
最后,执行你的命令。这肯定有用。
首先我尝试了
npm install
它给了我一个错误,无法解决依赖树,根据这个命令的帮助信息,
Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
我尝试了这个命令:
npm install --legacy-peer-deps
这解决了我的问题。
在我的例子中,我从版本6升级到版本7后开始得到错误(如下所示)。
npm犯错!ERR!无法解析依赖项 树 ... npm犯错!修复上游依赖项冲突,或使用——force或——legacy-peer-deps重试此命令,以接受错误的(可能损坏的)依赖项解决方案。
在我的例子中,使用——legacy-peer-deps或——force标志进行编译会导致一个无用的包。
所以我试着删除node_modules, package-lock。Json和bundle使用yarn install。这就产生了纱线。锁定文件和创建的包锁。Json,在后续的NPM运行中工作良好。
附注:我正在使用临时的解决方法,直到npm 7对我的项目起作用:在那之后,我将删除yarn。锁,package-lock。Json和node_modules文件夹,然后用NPM重新编译
rm -rf node_modules
rm package-lock.json
yarn install
# Generates a yarn.lock file and a new package-lock.json
# Continue with npm
npm start