由于某些代码漏洞,我试图更新一个子依赖项。程序包为snapdragon
,当前已安装0.8.2版本,但我希望升级到最新的0.12.0
。
我已经更新了所有需要snapdragon
作为依赖的软件包。现在,根据这些软件包package.json,它们需要"^0.8.1"
,也应该支持0.12.0
。
这是npm ls snapdragon
的结果:
├─┬ nodemon@1.19.2
│ └─┬ chokidar@2.1.8
│ └─┬ braces@2.3.2
│ └── snapdragon@0.8.2 deduped
└─┬ webpack@4.40.2
└─┬ micromatch@3.1.10
├─┬ extglob@2.0.4
│ ├─┬ expand-brackets@2.1.4
│ │ └── snapdragon@0.8.2 deduped
│ └── snapdragon@0.8.2 deduped
├─┬ nanomatch@1.2.13
│ └── snapdragon@0.8.2 deduped
└── snapdragon@0.8.2
我尝试运行npm update snapdragon
,也尝试了没有包锁但没有运气的全新npm install
。最终,我决定强行安装snapdraon@0.12.0
,但现在看来我的依赖项尚未满足。
├─┬ nodemon@1.19.2
│ └─┬ chokidar@2.1.8
│ └─┬ braces@2.3.2
│ └── UNMET DEPENDENCY snapdragon@^0.8.1
├── snapdragon@0.12.0
└─┬ webpack@4.40.2
└─┬ micromatch@3.1.10
├─┬ extglob@2.0.4
│ ├─┬ expand-brackets@2.1.4
│ │ └── UNMET DEPENDENCY snapdragon@^0.8.1
│ └── UNMET DEPENDENCY snapdragon@^0.8.1
├─┬ nanomatch@1.2.13
│ └── UNMET DEPENDENCY snapdragon@^0.8.1
└── UNMET DEPENDENCY snapdragon@^0.8.1
要求^0.8.1
是否接受版本0.12.0
?如何指示软件包锁定将软件包更新为最新版本?
答案 0 :(得分:2)
我无法回答有关carret的问题,但是关于标题的问题(迫使npm更新子依赖项),我们遇到了与puppeteer > extract-zip > mkdirp > minimist
类似的问题,其中minimist
有一个问题安全漏洞。它已升级,mkdirp
也已升级,但是extract-zip
不在本文撰写之时。
在npx npm-force-resolutions
的{{1}}条目下使用scripts
似乎已经解决了该漏洞(尽管不是理想的情况)
package.json
然后运行$ git diff package.json
diff --git a/package.json b/package.json
index cf825cf..0d694b3 100644
--- a/package.json
+++ b/package.json
@@ -8,8 +8,13 @@
"lib": "lib"
},
"scripts": {
+ "preinstall": "npx npm-force-resolutions",
"test": "echo \"Error: no test specified\" && exit 1"
},
+ "resolutions": {
+ "minimist": "1.2.3",
+ "mkdir": "0.5.3"
+ },
:
npm install
答案 1 :(得分:0)
我这样做了,但仍然收到与以前相同的错误。为什么?我对此很陌生。
在3522个扫描程序包中找到1个低严重漏洞 1个漏洞需要手动检查。有关详细信息,请参见完整报告。 ➜web-dev-starter git:(master)✗npx npm-force-resolutions npx:在1.27秒内安装5 ➜web-dev-starter git:(master)✗npm安装 在1.712秒内审核了3522个程序包
2个项目正在寻找资金
运行npm fund
了解详情
发现了1个严重程度较低的漏洞
运行npm audit fix
进行修复,或运行npm audit
了解详情
➜web-dev-starter git:(master)✗npm基金
js-starter-code@1.0.0
├─┬https://github.com/sponsors/isaacs
│└──glob@7.1.6
└─┬https://github.com/sponsors/ljharb
└──resolve@1.15.1
➜web-dev-starter git:(master)✗
我不知道这些人或这个git hub是谁。我必须加入会员才能获取代码吗?这是什么?