Svi*_*ish 23 npm package.json npm-audit
我报告了许多问题npm audit,通过运行npm audit fix它确实修复了其中几个问题。然而,这样做也会由于某种原因破坏我的构建。我想我知道哪个修复导致了问题,但我仍然想修复其他问题。
有没有办法让 npm 在我运行时做任何事情npm audit fix,但仅限于单个问题/依赖项?
我知道我运行了npm i,但这也添加了更新的依赖项package.json(即使带有--package-lock-only标志),这是我不想要的。我只希望 npm 更新package-lock.json,就像我运行时一样npm audit fix,但只是针对选定的问题子集。
Tro*_*ott 37
您应该能够npm update在这里实现您想要的目的。根据您使用的是npm7.x 还是npm6.x ,具体操作略有不同。我使用的是 7.x,所以这就是我下面显示的。
假设npm audit产生这样的输出:
# npm audit report\n\nminimist <0.2.1 || >=1.0.0 <1.2.3\nPrototype Pollution - https://npmjs.com/advisories/1179\nfix available via `npm audit fix`\nnode_modules/extract-zip/node_modules/minimist\n mkdirp 0.4.1 - 0.5.1\n Depends on vulnerable versions of minimist\n node_modules/extract-zip/node_modules/mkdirp\n extract-zip <=1.6.7\n Depends on vulnerable versions of mkdirp\n node_modules/extract-zip\n\n3 low severity vulnerabilities\n\nTo address all issues, run:\n npm audit fix\nRun Code Online (Sandbox Code Playgroud)\n这表明我们需要更新minimist、mkdirp、 和extract-zip。
让我们了解npm ls一下我们正在处理的版本和依赖项。
$ npm ls minimist mkdirp extract-zip \nscrape-text@1.0.0 /Users/trott/ucsf-ckm/scrape-text\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\xac puppeteer@2.1.1\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac extract-zip@1.6.7\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac mkdirp@0.5.1\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 minimist@0.0.8\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\xac semistandard@14.2.0\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\xac eslint@6.4.0\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\xac file-entry-cache@5.0.1\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac flat-cache@2.0.1\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac write@1.0.3\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mkdirp@0.5.3 deduped\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac mkdirp@0.5.3\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 minimist@1.2.5 deduped\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac standard-engine@12.0.0\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 minimist@1.2.5\n\n$ \nRun Code Online (Sandbox Code Playgroud)\n因为着色很重要,所以这是最后一张的屏幕截图:
\n\n让我们看看如果我们运行npm update minimist来更新该包会发生什么。让我们npm ls minimist看看是否有任何变化。(您还可以查看package-lock.json文件是否更改并进行比较。)
$ npm ls minimist\nscrape-text@1.0.0 /Users/trott/ucsf-ckm/scrape-text\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\xac puppeteer@2.1.1\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac extract-zip@1.6.7\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac mkdirp@0.5.1\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 minimist@0.0.8\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\xac semistandard@14.2.0\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\xac eslint@6.4.0\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac mkdirp@0.5.3\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 minimist@1.2.5 deduped\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac standard-engine@12.0.0\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 minimist@1.2.5\n\n$ \nRun Code Online (Sandbox Code Playgroud)\n不,没有改变。我们仍然拥有之前的相同版本。好的,让我们尝试下一个,即mkdirp.
$ npm update mkdirp\n\nchanged 1 package, and audited 244 packages in 1s\n\n3 low severity vulnerabilities\n\nTo address all issues, run:\n npm audit fix\n\nRun `npm audit` for details.\n$\nRun Code Online (Sandbox Code Playgroud)\n这changed 1 package看起来很有希望。让我们看看它做了什么:
$ npm ls mkdirp \nscrape-text@1.0.0 /Users/trott/ucsf-ckm/scrape-text\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\xac puppeteer@2.1.1\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac extract-zip@1.6.7\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mkdirp@0.5.1\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\xac semistandard@14.2.0\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac eslint@6.4.0\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\xac file-entry-cache@5.0.1\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac flat-cache@2.0.1\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\xac write@1.0.3\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mkdirp@0.5.5 deduped\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mkdirp@0.5.5\n\nRun Code Online (Sandbox Code Playgroud)\n已更新mkdirp至 0.5.5。您可以对其进行测试,看看是否仍然有效。
如果你现在这样做npm update extract-zip,将会得到一个干净的结果npm audit运行。
希望这能让您了解如何一次更新一个包而不package.json在此过程中进行修改。祝你好运!
| 归档时间: |
|
| 查看次数: |
16689 次 |
| 最近记录: |