node.js - npm cache clean 中 -f(强制?)参数的行为是什么?

标签 node.js caching npm command-line-interface package

我在网上搜索过,但找不到我的问题的答案。怎么样:

npm cache clean -f

不同于:

npm cache clean

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

最佳答案

看一下 npm 缓存清理源代码:

// 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 会删除除有时用于存储 stdout 内容的 - 文件之外的所有缓存文件。但是,npm cache clean -fnpm cache clean --force 会删除所有文件。

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

相关文章:

Node.js:需要本地人

javascript - 无法安装js-bson

database - Node Mongoose,转换为 ObjectId 失败,路径 "N"处的值 "PATH"

caching - MongoDB 缓存计数器

javascript - 终端错误: TypeError: Cannot destructure property 'interface' of 'require(...)' as it is undefined

javascript - jQuery 的 signalR 选择性模块?

node.js - 语法错误 : Unexpected token import- Node. js

c# - 我应该如何将动态变化的数据存储到服务器缓存中?

ubuntu - 无法删除虚拟主机 openlitespeed

node.js - npm solc : AssertionError [ERR_ASSERTION]: Invalid callback specified