javascript - 如何使用 npm 更新依赖项的依赖项
问题描述
我很想知道我找不到这个简单问题的答案。我也很想知道这npm update
不能解决这个问题。
我无法在此处发布完整的依赖关系树,但无论如何让我描述一下我的问题:
minimist 已过时(版本 1.2.0)并且在此版本中存在安全漏洞。软件包需要 minimist 将依赖项定义为 ^1.2.0 - 因此它与 1.2.2 兼容。
常见的解决方案是将其放入package.json
insidedevDependencies
或dependencies
with ^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
解决方案
问题在于深度。从文档中:
从 npm@2.6.1 开始,npm 更新将只检查顶级包。以前版本的 npm 也会递归地检查所有依赖项。要获得旧行为,请使用 npm --depth 9999 update。
所以我们必须提供我们想要更新的深度。在我的情况下,9999 花了很长时间,我取消了它。但是一个--depth 5
就足够了。
npm update --depth 5
如果那仍然没有更新依赖关系,那么您必须手动更改package-lock.json
.
打开package-lock.json
并查找所有出现"minimist": {
的对象并删除该对象。
例子:
改变这个:
"dependencies": {
"minimist": {
"version": "1.2.0",
"bundled": true,
"dev": true,
"optional": true
}
}
对此:
"dependencies": {
}
并npm install
再次运行。
推荐阅读
- c++ - walk, strol 函数没有为 long_min 提供正确的输出
- java - JPA 在多个字段中选择
- javascript - 如何使用forEach循环检查2个文件,如果存在则返回字符串,如果不返回文件名
- c# - 在 EF Core 中指定 Azure SQL 服务器版本而不中断本地开发
- mongodb - 如何在 MongoDB 聚合阶段添加计数器?
- c++ - 如何将 boost 与 xeus-cling jupyter 内核一起使用?
- spring - 如何在 Spring Boot 中使用 JPA 调用自定义插入查询
- html - CSS中的HTML'for'属性目标
- vb.net - 使用 docx body VB 创建 MailMessage 时出错
- sql - 从 SQL Server 中的 nvarchar 类型列中提取特定字符串