Windowsでwatchによるファイル更新監視がうまく行く時もあるけど行かない時もあるので、fs.watchFileを試してみた。
Node v0.9.3 + Win XP では動作を確認できました。
var fs = require('fs');
if (process.platform === 'win32') {
// Windows用
fs.watchFile(file, function (curr, prev) {/* */ });
} else {
fs.watch(file, function (eventName, filename) {/* */ });
}
まぁ、コールバックの引数も違って使いづらいんだけど、とりあえず使える。
少し整理するとこんな感じ。fs.watchがちゃんと動いてくれる方がうれしいので、まぁ、たぶん、今のところの対策かな。
var watch = (process.platform === 'win32')?fs.watchFile:fs.watch
watch(file, function (arg1, arg2) {
console.log('ファイルが更新されました');
});
あとは、fs.statSync(file).mtimeなどで更新時間を自前監視?