2014-12-29 58 views
0

我有c9工作區,我正在用grunt-watchify運行grunt來自動創建捆綁文件。這是工作的罰款時,突然我得到這個錯誤(調試是咕嚕-watchify真):c9:grunt-watchify拋出錯誤「致命錯誤:觀看EMFILE」

./app/js/controller.js [ [ '.', 'app', 'js', 'controller.js' ] ] 
./app/js/controller.js [ [ '.', 'app', 'js', 'controller.js' ] ] 
stat [ '/home/ubuntu/workspace', 
    './app/js/controller.js', 
    '=', 
    './app/js/controller.js' ] 
emit! match 
matches[0] = { './app/js/controller.js': true } 
emitting end [ './app/js/controller.js' ] 
emit! end 
Fatal error: watch EMFILE 

而現在它是不工作。如果我將watchify更改爲browserify,則可以使用。

這是我Gruntfile.js:

module.exports = function(grunt) { 
grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    compass: { 
     dist: { 
      options: { 
       appDir: 'app/', 
       //sassDir: 'sass', 
       //cssDir: 'app/stylesheets' 
      } 
     }, 
     dev: { 
      options: { 
       appDir: 'app/', 
       watch: true 
      } 
     } 
    }, 
    concurrent: { 
     dev: 
      ['watch', 'compass:dev'] 
    }, 
    watchify: { 
     dev: { 
     src: './app/js/controller.js', 
     dest: 'app/bundle.js', 
     debug: true 
     }, 
    }, 
    watch: { 
     css: { 
      files: '**/*.scss', 
      tasks: ['compass'] 
     }, 
     app: { 
      files: 'app/js/bundle.js', 
      options: { 
       livereload: true 
      } 
     } 
    }, 
    browserify: { 
     dist: { 
      files: { 
       'app/bundle.js': [ 
        'app/js/*.js', 
        ] 
      } 
     }, 
    }, 
    bower: { 
    install: { 
     //just run 'grunt bower:install' and you'll see files from your Bower packages in lib directory 
    }, 
    options: { 
     targetDir: './app/lib' 
    } 
    } 
}); 
grunt.loadNpmTasks('grunt-concurrent'); 
grunt.loadNpmTasks('grunt-contrib-compass'); 
grunt.loadNpmTasks('grunt-contrib-watch'); 
grunt.loadNpmTasks('grunt-browserify'); 
grunt.loadNpmTasks('grunt-watchify'); 
grunt.loadNpmTasks('grunt-bower-task'); 
grunt.registerTask('default',['bower:install', 'watchify', 'concurrent']); 
grunt.registerTask('heroku',['compass:dist', 'browserify', 'bower:install']); 

}

回答

0

EMFILE意味着有太多的文件打開。這很可能是由仍在運行的進程導致的,並且以某種方式打開了許多文件。您可以使用「ps aux」來檢查哪些進程正在運行。在Cloud9中,您可以通過工具菜單(工具>進程管理器)在進程管理器中看到這一點。如果您看到任何看起來可疑的進程(例如正在運行的節點進程),則可以通過進程管理器UI或通過鍵入「kill」來終止它們,其中要殺死的進程的進程ID在哪裏。之後,你應該可以在沒有EMFILE錯誤的情況下再次運行grunt。 (假設咕嚕聲本身不會引起問題)。

+0

確實有一些指南針監視和節點進程正在運行,但是殺死它們並沒有幫助。這些安全嗎? bash -c export ISOUTPUTPANE = 0; bash -l /mnt/shared/sbin/tmux -u2 -L cloud91.8 new -s user @ workspace export ISOUTPUTPANE = 0; bash -l;設置選項-g狀態關閉;設置選擇 –