有没有一种方法可以安装依赖关系的对等依赖关系?

Luc*_*nze 4 dependencies

在运行npm install时,我们得到以下信息:

npm WARN ajv-keywords@2.1.1 requires a peer of ajv@^5.0.0 but none is installed. You must install peer dependencies yoursel

我们最初的想法是,问题是需要安装提到的对等依赖项(ajv),但这并不能解决问题。

重要的是简单地理解问题。假设我们确实满足AFAICT的依赖性,那么错误消息甚至意味着什么?

package.json具有以下内容:

"dependencies": { "ajv": "^6.0.0" },

package-lock.json具有以下内容:

"ajv": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", "requires": { "fast-deep-equal": "1.1.0", "fast-json-stable-stringify": "2.0.0", "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", "dev": true }

npm-install-peersThis package doesn't seem to have any peerDependencies。该工具的维护者说:“它旨在安装项目的直接对等依赖关系,而不是对依赖关系的对等依赖关系进行安装”,这意味着该问题是一个比顶层更深的依赖关系。

是否有安装依赖项依赖项的工具?

Chr*_*row 6

安装所请求的特定版本的AJV:

npm install ajv@^5.0.0 --save
Run Code Online (Sandbox Code Playgroud)

^确保仅为软件包安装次要的,向后兼容的更新,例如5.1.0)

  • 当我遵循此建议时,该消息消失了,但我收到了以下消息:“ajv-keywords@3.4.1 需要 ajv@^6.9.1 的对等点”,如果我安装它,我们将返回到初始消息。如何解决这个问题? (3认同)

Tho*_*mas 5

我正在使用 firebase-admin,当我更新到 firebase-admin 版本 7.0.0 时,也出现了这个问题。

我已明确指定这两个组件的最新版本,并且警告消失了:

"ajv": "^6.10.0",
"ajv-keywords": "^3.4.0" 
Run Code Online (Sandbox Code Playgroud)


Sim*_*n D 1

查看https://github.com/angular/angular-cli/issues/9691有建议这是最新版本的 npm 的问题。删除 package-lock.json 为我纠正了这个错误。