有没有一种方法来安装依赖项的对等依赖项?

时间:2018-03-13 18:17:09

标签: 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-peers给出This package doesn't seem to have any peerDependencies。该工具的维护者说“它旨在安装项目的直接对等依赖项,而不是依赖项的对等依赖项”,这意味着问题是一个比顶级更深的依赖。

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

3 个答案:

答案 0 :(得分:2)

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

npm install ajv@^5.0.0 --save

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我正在使用firebase-admin,并且当我更新到firebase-admin的7.0.0版本时,也会弹出此问题。

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

user_custom_attribute