在运行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
。该工具的维护者说“它旨在安装项目的直接对等依赖项,而不是依赖项的对等依赖项”,这意味着问题是一个比顶级更深的依赖。
是否有工具来安装依赖项的依赖项?
答案 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