Pea*_*arl 181 npm angularjs typescript angular angular9
尝试使用npm i
命令安装 npm 包时,出现以下异常:
我尝试重新安装节点 js 包并将代理设置为关闭使用:
set HTTP_PROXY=
set HTTPS_PROXY=
Run Code Online (Sandbox Code Playgroud)
问题仍然存在。我做错了什么?
更新:
当我运行以下命令时:
npm install --legacy-peer-deps
Run Code Online (Sandbox Code Playgroud)
Ami*_*rzi 254
这与http代理无关。
正如它所说,您有依赖项冲突(不正确且可能损坏的依赖项),因此请尝试使用--force
, 或运行命令--legacy-peer-deps
。如果不生效,临时解决方案是使用节点的先前版本(降级节点版本),因为它有时会导致发生此类错误。
基于 OP 的更新更新:
如您所见,它会触发以下错误:
找不到与 @angular/http@^9.1.4 匹配的版本。
看看angular/http
页面。请注意,该弃用软件包的最新版本是7.2.16
在您请求更高版本时(例如^9.1.4
)!因此,请尝试检查项目依赖项并按照引发的错误来解决问题。
Ali*_*san 106
试试这个命令——
npm install --save --legacy-peer-deps
Run Code Online (Sandbox Code Playgroud)
小智 68
首先,在终端中执行此操作。
npm config set legacy-peer-deps true
Run Code Online (Sandbox Code Playgroud)
二、清除缓存:
npm cache clean --force
Run Code Online (Sandbox Code Playgroud)
最后,执行你的命令。
fri*_*mle 47
除了使用--legacy-peer-deps
命令行选项外,还可以将其设置为更永久的配置选项:
npm config set legacy-peer-deps true
Run Code Online (Sandbox Code Playgroud)
Tro*_*ott 42
使用npm
7 时,这会出现很多,因为对等依赖问题在版本 7 中被视为错误,而它们通常只是版本 6 中的警告。 通常使用--legacy-peer-deps
使其与npm
7 一起使用。
当这不起作用时,一个选项是降级到npm
6。降级 Node.js 没有必要(但也无害)。相关的依赖管理代码在npm
. 降级 Node.js 通常会巧合,因为这样做通常也会降级npm
。
另一个比降级破坏性更小的选项npm
是使用npx
先前版本npm
的安装命令:npx -p npm@6 npm install
当所有其他方法都失败时,通常值得尝试删除node_modules
目录和package-lock.json
,然后npm install
再次运行。再生node_modules
和package-lock.json
。
kmg*_*mgt 31
更新到 npm 7 后,某些软件包会发生这种情况。
参数--legacy-peer-deps
可以帮助:
npm i --legacy-peer-deps
Run Code Online (Sandbox Code Playgroud)
这里描述了legacy-peer-deps
导致 npm 在构建包树时完全忽略 peerDependencies,如 npm 版本 3 到 6。
如果由于过于严格的 peerDependencies 冲突而无法安装包,则它提供了一种解决问题的方法。
...
您可以true
默认将此选项设置为(npm 不推荐):
npm config set legacy-peer-deps true
Run Code Online (Sandbox Code Playgroud)
或者只是等到这些包更新。
Mis*_*r X 16
该问题与依赖项冲突或依赖项损坏有关。您可以通过强制安装接受依赖关系的不正确来继续。
解决方案:使用带有--force
.
你的命令将是这样的npm install --force @your-npm-package
。
注意:yarn
如果可以使用纱线包管理器安装依赖项,则可以使用它来安装依赖项。
Rig*_*eka 14
NPM
可用于安装和管理项目中依赖项的版本。
我在与 npm 版本相关的 React 版本上遇到了同样的问题:
npm 发现错误 types/react@16.14.20
因此,可能需要根据您的package.json文件安装软件包版本。
在 npm 7 版本中出现错误,无法安装 Node.js 模块。
如果您将npm 版本降级到 6,这些问题将变成警告并且问题将得到解决。
尝试证明这个命令:npm install -g npm@6
检查版本是否已安装:npm --version
删除并安装node_modules包:
a) 删除rm -rf node_modules
b) 安装:npm i
Ton*_*ock 13
免责声明:这假设您使用的是 npm v7+
注意:如果您按照兄弟评论者的说明进行操作,它将创建一个用户范围的配置,该配置不会在队友/机器/构建机器人之间一致同步。
您可能希望与您的项目绑定在一起,以便它在机器/开发人员之间扩散,并且不会污染您的其他项目。legacy-peer-deps
npm config set legacy-peer-deps true --location project
Run Code Online (Sandbox Code Playgroud)
这将创建一个本地文件,.npmrc
您可以在其中提交到存储库:
legacy-peer-deps=true
Run Code Online (Sandbox Code Playgroud)
然后,您可以运行:
npm install
Run Code Online (Sandbox Code Playgroud)
然后提交更新的锁定文件。
记住,位置,位置,位置:
每个项目的配置(/path/to/my/project/.npmrc
,查看更多):
npm config set legacy-peer-deps true --location project
Run Code Online (Sandbox Code Playgroud)
每用户配置(默认为$HOME/.npmrc
,查看更多)
npm config set legacy-peer-deps true --location user
Run Code Online (Sandbox Code Playgroud)
或者,因为默认位置无论如何都是用户:
npm config set legacy-peer-deps true
Run Code Online (Sandbox Code Playgroud)
全局配置(默认为$PREFIX/etc/npmrc
,查看更多)
npm config set legacy-peer-deps true --location global
Run Code Online (Sandbox Code Playgroud)
或者,正如--global
推断的那样--location global
npm config set legacy-peer-deps true --global
Run Code Online (Sandbox Code Playgroud)
就我而言,我们有一个旧版本的关键依赖项想要引入 webpack v3(!) - 但这是该项目的构建依赖项。
短期内最好的解决方案是用作legacy-peer-deps
保留。
如果您手头紧,您还可以考虑分叉依赖项并相应地调整其对等依赖项 - 然后将您的项目指向分叉。
小智 11
首先我尝试过
npm install
Run Code Online (Sandbox Code Playgroud)
它给了我错误unable to resolve dependency tree
并根据此命令的帮助信息,
npm install
Run Code Online (Sandbox Code Playgroud)
我尝试了这个命令:
npm install --legacy-peer-deps
Run Code Online (Sandbox Code Playgroud)
它解决了我的问题。
小智 10
尝试两个选项来解决此问题:
选项1:运行后
删除文件夹node_modules文件夹和文件package_lock.json :npm cache clean --force after npm i --force
选项 2:运行npm install --save --legacy-peer-deps
小智 9
您可以使用显示此错误的两种方式安装软件包:
ERESOLVE unable to resolve dependency tree
Run Code Online (Sandbox Code Playgroud)
npm install
使用并具有安装包--legacy-peer-deps
npm install --save --legacy-peer-deps
Run Code Online (Sandbox Code Playgroud)
这是两个命令的组合
A。将legacy-peer-deps设置为truenpm config
npm config set legacy-peer-deps true
Run Code Online (Sandbox Code Playgroud)
b. 现在使用安装包npm install
npm install
Run Code Online (Sandbox Code Playgroud)
最快的解决方案:npm install --legacy-peer-deps
解释:
在 npm 版本 3 到 6 中,peerDependency 不会自动安装,如果在树中发现对等依赖项的无效版本,则会发出警告。从 npm v7 开始,默认安装peerDependency 。
您的依赖项包含一些与根项目的依赖项冲突的对等依赖项。
正如日志中所描述的那样npm ERR
。
首先要了解问题。这是我的错误:
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: project-admin@11.0.0
npm ERR! Found: @angular/common@11.0.3
npm ERR! node_modules/@angular/common
npm ERR! @angular/common@"11.0.3" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @angular/common@"^9.1.0 || ^10.0.0" from @agm/core@3.0.0-beta.0
npm ERR! node_modules/@agm/core
npm ERR! @agm/core@"3.0.0-beta.0" from the root project
Run Code Online (Sandbox Code Playgroud)
首先,您应该开始从下到上阅读问题。这里@agm/core@3.0.0-beta.0 需要 angular common 9.1.0 或 10.0.0。顶部消息说找到的 angular common 实际上是 11.0.3。
(如果你想更好地理解依赖关系,这里是一个非常简单的站点https://npm.github.io/how-npm-works-docs/npm3/how-npm3-works.html)
dependencies — these are the essential dependencies that you rely on and call in your project’s code
devDependencies — these are your development dependencies, for example, a prettier library for formatting code
peerDependencies — if you set a peer dependency in your package.json, you are telling the person who installs your package that they need that dependency with the specified version
optionalDependencies — these dependencies are optional and failing to install them will not break the installation process
bundledDependencies — it’s an array of packages that will come bundled with your package. This is useful when some 3rd party library is not on NPM, or you want to include some of your projects as modules
Run Code Online (Sandbox Code Playgroud)
那么应该怎么解决呢?问题在于对等依赖。解决方案是降级 angular common 或者解决方案是使用遗留依赖关系逻辑来使用 --legacy-peer-deps 安装包。所以 --legacy-peer-deps 所做的不是尝试自动安装 peerDependencies。这对你有用吗?大概是。但是您应该提供具体的说明如何做到这一点,或者使用 --legacy-peer-deps 自动使用来自上述答案之一的此代码的项目包的未来安装:
npm config set legacy-peer-deps true
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我安装了该软件包并尝试运行 ng serve,但由于使用了 --legacy-peer-deps,因此未安装依赖软件包。我必须手动安装它们(因为我没有从上面的代码中设置配置)。最后手动安装了大约 5 个包,全部使用 --legacy-peer-deps,我结束了一个无法安装的包,我没有尝试继续,因为我的项目疯狂地抛出警告,并且有很多也用于审计的软件包。所以我的决定是不使用这个包并寻找替代方案。
我一路上读到的其他解决方案:
问题似乎是gf-kautomata-pipeline-ui
使用 Angular 9,而@angular/http
需要Angular 7。(@angular/http
已弃用并最终删除,并且其所有功能都已移至其中@angular/common
。)
请参阅: https: //www.npmjs.com/package/@angular/http
如果您运行的是 Angular 9,那么
@angular/http
从你的中删除package.json
(在 Angular 9 中不需要它)
确保您@angular/common
的package.json
.
跑步npm i
。
如果您运行的是 Angular 7,请打开 package.json 并检查以确保所有 Angular 包不高于 ^7.0.0。您可能还需要删除 gf-kautomata-pipeline-ui,或者联系 gf-kautomata-pipeline-ui 的作者并查明该库是否与 Angular 7 兼容。
归档时间: |
|
查看次数: |
276176 次 |
最近记录: |