我很想知道我找不到这个简单问题的答案。我也很想知道这npm update不能解决这个问题。
我不能在这里发布我完整的依赖树,但让我描述一下我的问题:
minimist 已过时(版本 1.2.0)并且在此版本中存在安全漏洞。软件包需要 minimist 将依赖项定义为 ^1.2.0 - 因此它与 1.2.2 兼容。
常见的解决方案是将其放入package.jsoninsidedevDependencies或dependencieswith ^1.2.2。我不想把它放进package.json. 我觉得npm update还应该更新间接依赖项。
我错过了什么吗?
在这里你可以看到我的 package-lock.json:https : //github.com/tflori/riki-community/blob/master/package-lock.json
和输出npm ls minimist:
riki-community@ /home/iras/work/projects/riki/community
??? awesome-typescript-loader@5.2.1
? ??? loader-utils@1.2.3
? ? ??? json5@1.0.1
? ? ??? minimist@1.2.0 deduped
? ??? mkdirp@0.5.1
? ??? minimist@0.0.8
??? jest@25.1.0
? ??? @jest/core@25.1.0
? ??? @jest/transform@25.1.0
? ? ??? @babel/core@7.8.7
? ? ??? json5@2.1.2
? ? ??? minimist@1.2.5
? ??? jest-haste-map@25.1.0
? ??? sane@4.1.0
? ??? @cnakazawa/watch@1.0.4
? ? ??? minimist@1.2.0 deduped
? ??? minimist@1.2.0 deduped
??? node-sass@4.13.1
? ??? meow@3.7.0
? ??? minimist@1.2.0
??? ts-jest@25.2.1
? ??? json5@2.1.2
? ??? minimist@1.2.5
??? tsconfig-paths-webpack-plugin@3.2.0
? ??? tsconfig-paths@3.8.0
? ??? minimist@1.2.0 deduped
??? webpack@4.42.0
??? watchpack@1.6.0
??? chokidar@2.1.8
??? UNMET OPTIONAL DEPENDENCY fsevents@1.2.9
??? UNMET OPTIONAL DEPENDENCY node-pre-gyp@0.12.0
??? UNMET OPTIONAL DEPENDENCY mkdirp@0.5.1
? ??? UNMET OPTIONAL DEPENDENCY minimist@0.0.8
??? UNMET OPTIONAL DEPENDENCY rc@1.2.8
??? UNMET OPTIONAL DEPENDENCY minimist@1.2.0
Run Code Online (Sandbox Code Playgroud)
iRa*_*RaS 18
问题是深度。从文档:
从 npm@2.6.1 开始,npm 更新只会检查顶级包。之前版本的 npm 也会递归检查所有依赖项。要获得旧行为,请使用 npm --depth 9999 更新。
所以我们必须提供我们想要更新的深度。就我而言,9999 花了很长时间,我取消了它。但是一个--depth 5就够了。
npm update --depth 5
Run Code Online (Sandbox Code Playgroud)
如果这仍然没有更新依赖关系,那么您必须手动更改package-lock.json.
打开package-lock.json并查找所有出现"minimist": {的对象并删除该对象。
例子:
改变这个:
"dependencies": {
"minimist": {
"version": "1.2.0",
"bundled": true,
"dev": true,
"optional": true
}
}
Run Code Online (Sandbox Code Playgroud)
对此:
"dependencies": {
}
Run Code Online (Sandbox Code Playgroud)
并npm install再次运行。