我在网上搜索过,但找不到我的问题的答案。怎么样:
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 -f
或 npm cache clean --force
会删除所有文件。
关于node.js - npm cache clean 中 -f(强制?)参数的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32672390/