npm强制软件包锁定以更新子依赖软件包

时间:2019-09-23 15:36:44

标签: npm package.json

由于某些代码漏洞,我试图更新一个子依赖项。程序包为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?如何指示软件包锁定将软件包更新为最新版本?

2 个答案:

答案 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是谁。我必须加入会员才能获取代码吗?这是什么?