2016-01-26 2 views
0

Нашего Глоток процесс сборки не выполняется для некоторых новых разработчиков, как это:Поймать все необработанная ошибки в Глотке

events.js:85 
     throw er; // Unhandled 'error' event 
      ^
Error: EMFILE, open '[some filename]' 
    at Error (native) 

Решения для запуска:

ulimit -n 2048 

Так что я хотел бы, чтобы поймать EMFILE и замените его более дружественным сообщением. Однако даже упаковка всего gulpfile.js в try/catch, похоже, не содержит его.

ответ

1

Оказалось, что обертывание try/catch вокруг всего не работает, потому что ошибки происходят после (всего) кода. Внедрение обработчика ошибок в каждую отдельную трубу:

function onError(e) { 
    if (e.code === 'EMFILE') { 
     console.error('Too many open files. You should run this command:\n ulimit -n 2048'); 
     process.exit(1); 
    } 
    gutil.log(e.message); 
    process.exit(1); 
} 

... 
var result = bundler.bundle(); 

result = result 
    .on('error', onError) 
    .pipe(source(name)) 
    .pipe(buffer()); 
Смежные вопросы