为什么 gulp.watch 或 fs.watch 在 Windows 上的 Ubuntu 上对 Bash 不起作用?

Why does gulp.watch or fs.watch not work on Bash on Ubuntu on Windows?

在 Bash 在 Ubuntu 在 Windows,像这样的 gulp 任务;

gulp.task('default', function() {
    gulp.watch('./', function() {console.log('change!')});
});

或者直接从节点调用 fs.watch

node -e "require('fs').watch('./')"

两者均失败并显示以下内容;

Error: watch ./ EPERM
    at exports._errnoException (util.js:1012:11)
    at FSWatcher.start (fs.js:1429:19)
    at Object.fs.watch (fs.js:1456:11)
    at [eval]:1:15
    at ContextifyScript.Script.runInThisContext (vm.js:25:33)
    at Object.exports.runInThisContext (vm.js:77:17)
    at Object.<anonymous> ([eval]-wrapper:6:22)
    at Module._compile (module.js:541:32)
    at bootstrap_node.js:315:29
    at _combinedTickCallback (internal/process/next_tick.js:67:7)

如何在 Windows 的 Ubuntu 上的 Bash 下使用 gulp.watch

目前 Bash Ubuntu Windows 不支持像 inotify 这样的文件系统观察器。您可以在 the project's uservoice.

上为此类功能投票

在此github issue

中进一步讨论

编辑:看起来这个问题现在已经在开发中得到修复,并将在 2017 年初的某个时候向一般 public 发布。