如何检查NPM缓存是否已包含tarball

Ale*_*lls 6 node.js npm npm-install npm-cache

我正在查看缓存文档:https: //docs.npmjs.com/cli/cache

如果我跑这个:

npm cache add lodash@x.y.z
Run Code Online (Sandbox Code Playgroud)

如果这是在npm缓存中,我该如何检查?

我没有npm cache get lodash@x.y.z在文档中看到......

Sim*_*llo 5

看起来npm没有直接的方法来实现这一点,但这个脚本可以解决问题

cache.js在下面创建一个文件并粘贴代码

const cacache = require('cacache/en')
const cachePath = require('os').homedir()+'/.npm/_cacache'

cacache.ls(cachePath)
  .then((packages) => {
    for(const i in packages) {
      console.log(packages[i].key)
    }
  }) 
Run Code Online (Sandbox Code Playgroud)

npm install cacache
Run Code Online (Sandbox Code Playgroud)

然后运行

node cache.js | grep lodash
Run Code Online (Sandbox Code Playgroud)

个人观点:yarn旨在缓存npm包,如果你打算这样做,你可以给它一个机会

编辑:我制作了一个完成上述所有操作的脚本,欢迎提出反馈意见

https://www.npmjs.com/package/npm-check-cache

  • 知道为什么它被称为“_cacache”吗? (2认同)