为什么gulp.watch或fs.watch不适用于Windows上的Ubuntu上的Bash?

时间:2016-08-12 02:08:23

标签: windows bash gulp gulp-watch windows-subsystem-for-linux

在Windows上的Ubuntu上进行Bash,像这样的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

1 个答案:

答案 0 :(得分:2)

目前,Windows上的Ubuntu上的Bash不支持像inotify这样的文件系统观察者。您可以在the project's uservoice上投票赞成此类功能。

在此github issue

中进一步讨论

编辑:看起来这已经在开发中修复,并将在2017年初的某个时候发布给公众。