我已经在网上搜索过,但无法得到我的问题的答案。怎么:

npm cache clean -f


不同于:

npm cache clean


我怀疑是-f的简写,但是即使在官方文档中,我也无法找到为什么要使用--force的原因,优点和缺点。我确定使用-f时会出现警告,但我不知道为什么。

最佳答案

看一下npm cache clean源代码:

// npm cache clean [<path>]
function clean (args, cb) {
  assert(typeof cb === 'function', 'must include callback')

  if (!args) args = []

  var f = path.join(npm.cache, normalize(args))
  if (f === npm.cache) {
    fs.readdir(npm.cache, function (er, files) {
      if (er) return cb()
      asyncMap(
        files.filter(function (f) {
          return npm.config.get('force') || f !== '-'
        }).map(function (f) {
          return path.join(npm.cache, f)
        }),
        rm,
        cb
      )
    })
  } else {
    rm(f, cb)
  }
}


链接到源代码:https://github.com/npm/npm/blob/master/lib/cache.js#L199

默认情况下,cache clean命令看起来像是在默认的npm缓存目录中浏览,并删除除名为-的文件以外的所有文件。默认情况下会跳过此文件,并且仅在强制选项中将其删除。

问题是破折号用作文件名有什么用?我在此question中找到了可能的答案。根据接受的答案中提供的信息,某些程序将-文件用作标准输出。

总结一下。标准npm cache clean删除除-有时用于存储标准输出内容的文件以外的所有缓存文件。但是,npm cache clean -fnpm cache clean --force删除所有文件。

关于node.js - npm cache clean中-f(force?)参数的行为是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32672390/

10-12 00:19
查看更多