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