我怎样才能只更新 lodash 包一个子依赖(babel/core 需要依赖包)从 lodash@4.17.19 到 v4.17.21
How can I update only the lodash package a child dependent(required dependency package for babel/core) from lodash@4.17.19 to v4.17.21
最近 lodash
软件包在 github 页面上报告了一个安全漏洞问题。您可以在此处找到详细信息。 https://github.com/lodash/lodash/issues/5083.
This latest version of lodash has security vulnerability of Command Injection (CVE-2021-23337).
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23337
https://snyk.io/vuln/SNYK-JS-LODASH-1040724
All versions of package lodash; all versions of package org.fujion.webjars:lodash are vulnerable to Command Injection via template.
他们已经解决了这个问题,它的修复存在于 lodash v4.17.21 中。
我使用的是 Angular 10 版本。我没有直接使用 lodash,但是 @angular/localize@10.0.7
内部使用的 angular 包之一使用 @babel/core@7.8.3
而这个 babel 内部使用 lodash@4.17.19
.
Angular 人们会在他们的最新版本中更新版本号,目前,我不想升级到 angular 的最新版本。因此,我的问题是如何只更新 lodash 包,一个子依赖包(babel/core 需要依赖包)从 lodash@4.17.19 到 v4.17.21?
npm update lodash
对我有用。
$ npm -v
7.6.0
$ npm ls lodash
temp@1.0.0 /Users/trott/temp
└─┬ @angular/localize@10.2.4
└─┬ @babel/core@7.8.3
├─┬ @babel/traverse@7.13.0
│ └── lodash@4.17.19 deduped
├─┬ @babel/types@7.13.0
│ └── lodash@4.17.19 deduped
└── lodash@4.17.19
$ npm update lodash
changed 1 package, and audited 99 packages in 1s
6 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
$ npm ls lodash
temp@1.0.0 /Users/trott/temp
└─┬ @angular/localize@10.2.4
└─┬ @babel/core@7.8.3
├─┬ @babel/traverse@7.13.0
│ └── lodash@4.17.21 deduped
├─┬ @babel/types@7.13.0
│ └── lodash@4.17.21 deduped
└── lodash@4.17.21
$
这不完全您所要求的,因为它更新到满足您的依赖项要求的最新lodash
,而不是特定版本4.17.21
。碰巧的是(在撰写本文时)@angular/localize
的最新版本是 4.17.21
。如果您确实需要满足您的依赖关系的不是最新的特定版本,请继续阅读。
假设您想要更新到 4.17.20
。你可以试试 npm update lodash@4.17.20
。 las,那是行不通的。该命令运行良好,但不更新任何内容。在这种情况下,您必须先 npm install lodash@4.17.20
。这也将更新您的所有依赖项(假设 4.17.20
满足他们的要求)。然后 npm uninstall lodash@4.17.20
将其从您的直接依赖项中删除。
最近 lodash
软件包在 github 页面上报告了一个安全漏洞问题。您可以在此处找到详细信息。 https://github.com/lodash/lodash/issues/5083.
This latest version of lodash has security vulnerability of Command Injection (CVE-2021-23337). https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23337 https://snyk.io/vuln/SNYK-JS-LODASH-1040724 All versions of package lodash; all versions of package org.fujion.webjars:lodash are vulnerable to Command Injection via template.
他们已经解决了这个问题,它的修复存在于 lodash v4.17.21 中。
我使用的是 Angular 10 版本。我没有直接使用 lodash,但是 @angular/localize@10.0.7
内部使用的 angular 包之一使用 @babel/core@7.8.3
而这个 babel 内部使用 lodash@4.17.19
.
Angular 人们会在他们的最新版本中更新版本号,目前,我不想升级到 angular 的最新版本。因此,我的问题是如何只更新 lodash 包,一个子依赖包(babel/core 需要依赖包)从 lodash@4.17.19 到 v4.17.21?
npm update lodash
对我有用。
$ npm -v
7.6.0
$ npm ls lodash
temp@1.0.0 /Users/trott/temp
└─┬ @angular/localize@10.2.4
└─┬ @babel/core@7.8.3
├─┬ @babel/traverse@7.13.0
│ └── lodash@4.17.19 deduped
├─┬ @babel/types@7.13.0
│ └── lodash@4.17.19 deduped
└── lodash@4.17.19
$ npm update lodash
changed 1 package, and audited 99 packages in 1s
6 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
$ npm ls lodash
temp@1.0.0 /Users/trott/temp
└─┬ @angular/localize@10.2.4
└─┬ @babel/core@7.8.3
├─┬ @babel/traverse@7.13.0
│ └── lodash@4.17.21 deduped
├─┬ @babel/types@7.13.0
│ └── lodash@4.17.21 deduped
└── lodash@4.17.21
$
这不完全您所要求的,因为它更新到满足您的依赖项要求的最新lodash
,而不是特定版本4.17.21
。碰巧的是(在撰写本文时)@angular/localize
的最新版本是 4.17.21
。如果您确实需要满足您的依赖关系的不是最新的特定版本,请继续阅读。
假设您想要更新到 4.17.20
。你可以试试 npm update lodash@4.17.20
。 las,那是行不通的。该命令运行良好,但不更新任何内容。在这种情况下,您必须先 npm install lodash@4.17.20
。这也将更新您的所有依赖项(假设 4.17.20
满足他们的要求)。然后 npm uninstall lodash@4.17.20
将其从您的直接依赖项中删除。