Dependabot 首先报告并撤回了一个软件包中的安全问题。没有给出撤回的依据,只是说该软件包“不再容易受到攻击”。这是没有意义的。原始 CVE 仍然存在,并且仍然引用受影响的代码。
经过调查,我发现给定的包在yarn.lock中存在两次,一次是在包含漏洞的版本中,后来是在包含补丁的版本中:
ansi-regex@^2.0.0:
version "2.1.1"
ansi-regex@^5.0.0:
version "5.0.0"````
I'd be grateful for any way to make sense of this.
Run Code Online (Sandbox Code Playgroud) 在运行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。该工具的维护者说:“它旨在安装项目的直接对等依赖关系,而不是对依赖关系的对等依赖关系进行安装”,这意味着该问题是一个比顶层更深的依赖关系。
是否有安装依赖项依赖项的工具?