gulp.watch - 错误:观看null EMFILE

时间:2016-01-24 00:37:27

标签: javascript node.js gulp gulp-watch gulp-less

我最近遇到了gulp.watch的各种错误,因此我设置了一个非常简单的测试项目。我无法理解为什么我会收到错误。该项目包含5个文件:

  1. 的index.html
  2. 的package.json
  3. styles.css的
  4. styles.less
  5. gulpfile.js
  6. 我只使用两个模块:

    1. 吞少
    2. 到目前为止一切顺利。以下是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
      • node:5.4.1
      • 吞:
        • CLI版本:3.9.0
        • 本地版本:3.9.0
      • gulp-less:3.0.5

      更新:我在github的官方gulp回购中created an issue结束了。尽我所能来解决这个问题。

      更新2:我使用Sublime文本编辑器。打开太多窗口(即打开太多文件)将触发此问题。当我关闭其中一些窗口时,这个问题就消失了。我仍然无法找到一致的"这多个窗口/文件打开"情景,所以从我的观点来看,它仍然有些神秘。

1 个答案:

答案 0 :(得分:0)

我和你有同样的问题。 最后我发现实际问题是,如果你在终端下用命令sublime .打开你的项目目录,然后运行gulp,那gulp将导致错误。

所以,你可以先打开sublime应用程序,然后加载你的项目目录,最后在终端中启动gulp。一切都会好的!

希望能帮到你