为什么 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.
上为此类功能投票
中进一步讨论
编辑:看起来这个问题现在已经在开发中得到修复,并将在 2017 年初的某个时候向一般 public 发布。
在 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.
上为此类功能投票 中进一步讨论编辑:看起来这个问题现在已经在开发中得到修复,并将在 2017 年初的某个时候向一般 public 发布。