如果我将以下程序作为node watcher.js file.txt
运行,那么当我触摸file.txt
时,它会按预期运行。但是如果我在vim中打开file.txt
并保存,那么它就会停止检测将来对文件的修改。这对我来说真的很奇怪,为什么会出现这种情况?
var fs = require('fs');
var args = process.argv;
if (args.length <= 2) {
console.log('USAGE: ' + args[1] + ' filename');
process.exit(1);
}
var filename = args[2];
fs.watch(filename, function(event, filename) {
console.log('file ' + filename + ' changed!');
});
答案 0 :(得分:1)
检查第一个参数的内容非常重要,而不仅仅是文件名。问题是event
可以是'change'
或'rename'
。
在这种情况下,看起来vim
实际上是重命名旧文件并创建一个新文件。