【问题标题】:npm force package-lock to update a sub-dependency packagenpm force package-lock 更新子依赖包
【发布时间】:2019-09-23 15:36:44
【问题描述】:

由于一些代码漏洞,我正在尝试更新子依赖项。包是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吗?如何指示 package-lock 将包更新到最新版本?

【问题讨论】:

  • 您是否尝试过从头安装 Snapdragon?
  • @SachinYadav 是的,甚至整个依赖列表都没有运气。

标签: npm package.json


【解决方案1】:

我无法回答 carret 问题,但关于标题的主题(强制 npm 更新子依赖项),我们遇到了与 puppeteer > extract-zip > mkdirp > minimist 类似的问题,其中 minimist 存在安全漏洞。它已升级,mkdirp 也已升级,但在撰写本文时,extract-zip 还没有。

package.jsonscripts 条目下使用npx npm-force-resolutions 似乎已经解决了(尽管不是很理想)该漏洞

$ 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

$ npm install && npm audit

> sge@1.0.0 preinstall /home/jlam/code/prjName
> npx npm-force-resolutions

npx : 5 installé(s) en 5.733s
added 1 package from 1 contributor, removed 1 package and audited 72 packages in 7.212s

[...]


found 0 vulnerabilities
[...]

                       === npm audit security report ===                        

found 0 vulnerabilities
 in 72 scanned packages

【讨论】:

  • 感谢@Julien Lamarche。使用您的解决方案,我解决了问题。马可
  • 当没有可用的 package-lock.json 时,预安装的 npx npm-force-resolutions 会返回错误
  • @AmamMustofa 我们如何在没有 package-lock.json 的情况下使用强制解析?
  • @Automator npm install 应该是通过编写 package-lock.json 并在 node-modules 中安装包来工作的,对吧?这意味着使用 npm-force-resolution 并没有像 npm install 那样做 imo
【解决方案2】:

我这样做了,但仍然遇到与以前相同的错误。为什么?我对此很陌生。

在 3522 个扫描包中发现 1 个低严重性漏洞 1 个漏洞需要人工审核。有关详细信息,请参阅完整报告。 ➜ web-dev-starter git:(master) ✗ npx npm-force-resolutions npx:在 1.27 秒内安装 5 个 ➜ web-dev-starter git:(master) ✗ npm install 在 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 是谁。我必须加入会员才能获得代码吗?这是什么?

【讨论】:

  • 嗨,布拉德,你尝试了答案并分享了结果真是太棒了,这表明你真的很努力,这真的很重要:) 对你和社区来说,更有帮助的是创建一个新的帖子/问题并链接到这个。保持简单,特别是因为您的源代码可能“相似”但不准确,所以每个人都在这里回答同样的问题 :)
  • 嗨丹尼尔,谢谢你的帮助,我会试试的。很难让它接受我的问题。我对 javaScript 的理解还不够,无法使用我猜的正确词语?
  • 嗨,布拉德,当您学习基础知识时,要做的一件好事就是不断寻找其他人提出或回答相同的问题 :) 如果您是自学编码,那么很多很棒和免费的教程网站可以帮助您将其分解为基础知识。对于任何使用 NodeJS 的东西,尤其是这样一个令人敬畏且不断发展的社区。只需尝试下一个教程,或者找到一个描述它的网站可能略有不同。我知道所有 npm 的东西一开始对我来说也有点不知所措,同时还要学习 js ;) 但步骤都很简单,一次只需要一步。
  • 我需要帮助。我不明白如何在这个网站上提问。我的问题没有被验证接受,因为他们没有使用正确的词?有人说他们看不懂我的问题,因为他们的代码没有缩进?现在该网站不允许我发布一个多小时的终端错误,因为它说只有代码,但我问了一个问题?没有任何效果。
  • 嗨 rvakid,看看stackoverflow.com/help/how-to-ask 和更重要的是排名不错的问题(赏金部分可能是查看的好地方)。在有问题的正文中描述您想要的结果与当前结果、上下文(意味着您的应用程序语言、应用程序的目的。尽可能详细地添加任何其他上下文详细信息通常会有所帮助)以及您已经尝试过的确切内容,包括足够的来源某人重现您的问题的代码+上下文。至少你必须展示你尝试过,分享代码+描述,并清楚你想要实现的目标。
猜你喜欢
  • 2016-01-06
  • 2018-04-19
  • 2020-04-30
  • 2023-03-14
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
相关资源
最近更新 更多