我最近遇到了各种错误gulp.watch
,所以我建立了一个非常简单的测试项目。我不知道为什么会出现错误。该项目包含5个文件:
- 索引.html
- 包.json
- 样式.css
- 样式.less
- gulpfile.js
我只使用两个模块:
- 吞咽
- 少吞咽
到目前为止,一切都很好。以下是 gulpfile.js 的内容:
var gulp = require('gulp');
var less = require('gulp-less');
gulp.task('default', function() {
gulp.watch('styles.less', ['styles']);
});
gulp.task('styles', function() {
return gulp.src('styles.less')
.pipe(less())
.pipe(gulp.dest(''));
});
我希望gulp
在终端中运行会开始观看过程。相反,它会产生以下错误(我正在逐行复制我在终端中看到的内容):
[19:19:30] Using gulpfile ~/Projects/Sandbox/fred/gulpfile.js
[19:19:30] Starting 'default'...
2016-01-23 19:19 gulp[41595] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
[19:19:30] Finished 'default' after 7.91 ms
events.js:141
throw er; // Unhandled 'error' event
^
Error: watch null EMFILE
at exports._errnoException (util.js:856:11)
at FSEvent.FSWatcher._handle.onchange (fs.js:1296:21)
我一直在其他项目中看到这个错误,所以为了确保我没有发疯,我提出了我能想到的最简单的用例。作为记录,以下是我正在运行的所有内容的版本:
- npm:3.5.3
- 节点:5.4.1
- 吞咽:
- 命令行版本:3.9.0
- 本地版本:3.9.0
- 少吞咽:3.0.5
更新:我在 github 上的官方 gulp 存储库中创建了一个问题。尽我所能来解决这个问题。
更新 2:我使用 Sublime 文本编辑器。打开太多窗口(即打开太多文件)将触发此问题。当我关闭其中一些窗口时,这个问题就消失了。我仍然找不到一致的“打开这么多窗口/文件”的场景,所以从我的角度来看,它仍然有点神秘。