从NPM缓存中清除*仅一个*软件包

Ale*_*lls 9 node.js npm npm-cache

问题:

有时候我跑

npm install x@latest
Run Code Online (Sandbox Code Playgroud)

但实际上并没有拉出该软件包的最新版本((脚)。

但是,如果我这样做:

npm cache clean --force && npm install x@latest
Run Code Online (Sandbox Code Playgroud)

它将拉最新的

但我实际上宁愿避免删除整个缓存,而只是删除单个软件包的缓存,例如:

npm cache clean x --force
Run Code Online (Sandbox Code Playgroud)

但这似乎是不允许的。有人知道一个好的解决方法吗?

也许很简单:

rm -rf $HOME/.npm/x
Run Code Online (Sandbox Code Playgroud)

Liu*_*Hei 10

> npm cache ls vue@2.6.12
make-fetch-happen:request-cache:https://registry.npmjs.org/vue/-/vue-2.6.12.tgz
make-fetch-happen:request-cache:https://registry.npmjs.org/vue
make-fetch-happen:request-cache:https://registry.npmjs.org/vue
Run Code Online (Sandbox Code Playgroud)

所有列表项都是缓存键,然后通过键清理缓存

> npm cache clean make-fetch-happen:request-cache:https://registry.npmjs.org/vue/-/vue-2.6.12.tgz

> npm cache clean make-fetch-happen:request-cache:https://registry.npmjs.org/vue

> npm cache clean make-fetch-happen:request-cache:https://registry.npmjs.org/vue
Run Code Online (Sandbox Code Playgroud)

或者使用shell批量处理

npm cache ls vue@2.6.12 | xargs npm cache clean
Run Code Online (Sandbox Code Playgroud)

  • `npm cache ls` 不适用于较旧的 npm 版本(6 和 7,基于文档。我检查了 npm 6.14.16) (2认同)

小智 1

我遇到了这个问题,我当前的解决方法是再次升级软件包。由于sha在安装过程中发生了更改,它会自动提取软件包并更新缓存,我测试过yarn并且它有效,尚未测试过npm但我认为它会按预期工作。

对于 npm:

npm update x@latest
Run Code Online (Sandbox Code Playgroud)

用于纱线

yarn upgrade-interactive --latest
Run Code Online (Sandbox Code Playgroud)