您应该可以在这里使用npm update
来实现您想要的。根据您使用的是npm
7.x 还是npm
6.x ,具体操作会略有不同。我正在使用 7.x,所以这就是我在下面显示的内容。
假设npm audit
产生这样的输出:
# npm audit report
minimist <0.2.1 || >=1.0.0 <1.2.3
Prototype Pollution - https://npmjs.com/advisories/1179
fix available via `npm audit fix`
node_modules/extract-zip/node_modules/minimist
mkdirp 0.4.1 - 0.5.1
Depends on vulnerable versions of minimist
node_modules/extract-zip/node_modules/mkdirp
extract-zip <=1.6.7
Depends on vulnerable versions of mkdirp
node_modules/extract-zip
3 low severity vulnerabilities
To address all issues, run:
npm audit fix
这表明我们需要更新minimist
、mkdirp
和extract-zip
。
让我们npm ls
了解一下我们正在处理的版本和依赖项。
$ npm ls minimist mkdirp extract-zip
scrape-text@1.0.0 /Users/trott/ucsf-ckm/scrape-text
├─┬ puppeteer@2.1.1
│ └─┬ extract-zip@1.6.7
│ └─┬ mkdirp@0.5.1
│ └── minimist@0.0.8
└─┬ semistandard@14.2.0
├─┬ eslint@6.4.0
│ ├─┬ file-entry-cache@5.0.1
│ │ └─┬ flat-cache@2.0.1
│ │ └─┬ write@1.0.3
│ │ └── mkdirp@0.5.3 deduped
│ └─┬ mkdirp@0.5.3
│ └── minimist@1.2.5 deduped
└─┬ standard-engine@12.0.0
└── minimist@1.2.5
$
因为着色很重要,所以这是最后一个的屏幕截图:

让我们看看如果我们npm update minimist
只更新那个包会发生什么。让我们npm ls minimist
来看看是否有任何变化。(您还可以查看您的package-lock.json
文件是否已更改并进行比较。)
$ npm ls minimist
scrape-text@1.0.0 /Users/trott/ucsf-ckm/scrape-text
├─┬ puppeteer@2.1.1
│ └─┬ extract-zip@1.6.7
│ └─┬ mkdirp@0.5.1
│ └── minimist@0.0.8
└─┬ semistandard@14.2.0
├─┬ eslint@6.4.0
│ └─┬ mkdirp@0.5.3
│ └── minimist@1.2.5 deduped
└─┬ standard-engine@12.0.0
└── minimist@1.2.5
$
不,没有变化。我们仍然拥有与以前相同的版本。好的,让我们尝试下一个mkdirp
。
$ npm update mkdirp
changed 1 package, and audited 244 packages in 1s
3 low severity vulnerabilities
To address all issues, run:
npm audit fix
Run `npm audit` for details.
$
这changed 1 package
似乎很有希望。让我们看看它做了什么:
$ npm ls mkdirp
scrape-text@1.0.0 /Users/trott/ucsf-ckm/scrape-text
├─┬ puppeteer@2.1.1
│ └─┬ extract-zip@1.6.7
│ └── mkdirp@0.5.1
└─┬ semistandard@14.2.0
└─┬ eslint@6.4.0
├─┬ file-entry-cache@5.0.1
│ └─┬ flat-cache@2.0.1
│ └─┬ write@1.0.3
│ └── mkdirp@0.5.5 deduped
└── mkdirp@0.5.5
更新mkdirp
到 0.5.5。您可以对其进行测试,看看是否仍然有效。
如果你现在这样做npm update extract-zip
,那将导致一个干净的npm audit
运行。
希望这能让您了解如何一次更新一个包,而无需package.json
在此过程中进行修改。祝你好运!