react event error 167throw npm gulp

npm - 167throw - Gulp error: events.js: 72



events.js:183 throw er;// unhandled ''error'' event (1)

He estado probando (o intentando trabajar) una guía de estilo jekyll de: https://github.com/davidhund/jekyll-styleguide#user-content-requirements

Mi gulpfile es:

var gulp = require(''gulp''); var sass = require(''gulp-ruby-sass''); var autoprefixer = require(''gulp-autoprefixer''); var browserSync = require(''browser-sync''); var rename = require(''gulp-rename''); var concat = require(''gulp-concat''); var minifycss = require(''gulp-minify-css''); var uglify = require(''gulp-uglify''); var clean = require(''gulp-clean''); var notify = require(''gulp-notify''); var plumber = require(''gulp-plumber''); // Handy file paths paths = { scss: "./static/scss/", css: "./static/css/", img: "./static/img/", js: "./static/js/" } // SASS gulp.task(''sass'', function() { // Be specific in what file to process return gulp.src(paths.scss+''app.scss'') .pipe(sass({ style: ''expanded'' })) .pipe(autoprefixer(''> 5%'', ''last 2 version'', ''ie 9'')) .pipe(minifycss()) .pipe(rename({suffix: ''.min''})) .pipe(gulp.dest(paths.css)) // .pipe(gulp.dest(''./_site/static/css/'')) // .pipe(notify({ message: ''Styles task complete'' })); }); // COPY CSS gulp.task(''copycss'', function() { return gulp.src(paths.css+''app.min.css'') .pipe(gulp.dest(''./_site/static/css/'')) // .pipe(notify({ message: ''Copied Minified CSS to _site/static/css'' })); }); // JEKYLL // Start a `jekyll build` task // From: http://stackoverflow.com/questions/21293999/use-jekyll-with-gulp gulp.task(''jekyll-build'', function() { require(''child_process'').spawn(''jekyll'', [''build'', ''--config=_config.dev.yml''], {stdio: ''inherit''}); }); // Start a `jekyll build --watch` task gulp.task(''jekyll-watch'', function() { require(''child_process'').spawn(''jekyll'', [''build'', ''--watch'', ''--config=_config.dev.yml''], {stdio: ''inherit''}); }); // BROWSER-SYNC gulp.task(''browser-sync'', function() { // reload when Jekyll-generated files change browserSync.init([''./_site/static/**/*.css'', ''./_site/**/*.html''], { server: { baseDir: ''./_site/'' } }); }); // WATCH gulp.task(''watch'', function() { // TEST: [Only] Run `jekyll build` when I update (the version in) settings.yml // gulp.watch(''./_config.yml'', [''jekyll'']); // Run Sass when I update SCSS files gulp.watch(paths.scss+''**/*.scss'', [''sass'', ''copycss'']); // gulp.watch(paths.js+''**/*.js'', [''scripts'']); // gulp.watch(paths.img+''**/*'', [''images'']); }); // DEFAULT task gulp.task(''default'', [''jekyll-watch'', ''watch'',''browser-sync'']);

Cada vez que corro un gulp acabo de obtener:

events.js:72 throw er; // Unhandled ''error'' event ^ Error: spawn ENOENT at errnoException (child_process.js:998:11) at Process.ChildProcess._handle.onexit (child_process.js:789:34)


El problema al que te enfrentas es que no estás manejando el error, por lo tanto, cuando Gulp encuentra un error, lo lanza, pero "nadie" se está encargando de él, lo que hace que Gulp se rompa.

Para seguir ejecutando tragos, debe definir sus manejadores de errores y hacer lo que quiera hacer con el error, por lo general, imprima en la carpeta lo que está sucediendo.

También debe identificar qué parte de su código está "lanzando" el error, en su caso, es causado por los "observadores": un observador escucha eventos adicionales o agrega archivos al reloj. Entonces, un observador está lanzando el error.

¡Tienes que atraparlo!

Agregue un evento en el controlador después de la ejecución de los complementos, y pase este error a una función que lo pinte (o algo más), pero no rompa "el reloj" (John Snow estará orgulloso) y le permite identificar el error , arréglalo, a seguir viendo sin reiniciar trago manualmente.

PD: ¡No te olvides de definir "la función catcher"!

Tu código podría ser algo como esto:

var gulp = require(''gulp''); var sass = require(''gulp-ruby-sass''); var autoprefixer = require(''gulp-autoprefixer''); var browserSync = require(''browser-sync''); var rename = require(''gulp-rename''); var concat = require(''gulp-concat''); var minifycss = require(''gulp-minify-css''); var uglify = require(''gulp-uglify''); var clean = require(''gulp-clean''); var notify = require(''gulp-notify''); var plumber = require(''gulp-plumber''); // Handy file paths paths = { scss: "./static/scss/", css: "./static/css/", img: "./static/img/", js: "./static/js/" } // SASS gulp.task(''sass'', function() { // Be specific in what file to process return gulp.src(paths.scss+''app.scss'') .pipe(sass({ style: ''expanded'' })).on(''error'', errorHandler) .pipe(autoprefixer(''> 5%'', ''last 2 version'', ''ie 9'')) .pipe(minifycss()) .pipe(rename({suffix: ''.min''})) .pipe(gulp.dest(paths.css)) // .pipe(gulp.dest(''./_site/static/css/'')) // .pipe(notify({ message: ''Styles task complete'' })); }); // COPY CSS gulp.task(''copycss'', function() { return gulp.src(paths.css+''app.min.css'') .pipe(gulp.dest(''./_site/static/css/'')) // .pipe(notify({ message: ''Copied Minified CSS to _site/static/css'' })); }); // JEKYLL // Start a `jekyll build` task // From: http://.com/questions/21293999/use-jekyll-with-gulp gulp.task(''jekyll-build'', function() { require(''child_process'').spawn(''jekyll'', [''build'', ''--config=_config.dev.yml''], {stdio: ''inherit''}); }); // Start a `jekyll build --watch` task gulp.task(''jekyll-watch'', function() { require(''child_process'').spawn(''jekyll'', [''build'', ''--watch'', ''--config=_config.dev.yml''], {stdio: ''inherit''}); }); // BROWSER-SYNC gulp.task(''browser-sync'', function() { // reload when Jekyll-generated files change browserSync.init([''./_site/static/**/*.css'', ''./_site/**/*.html''], { server: { baseDir: ''./_site/'' } }); }); // WATCH gulp.task(''watch'', function() { // TEST: [Only] Run `jekyll build` when I update (the version in) settings.yml // gulp.watch(''./_config.yml'', [''jekyll'']); // Run Sass when I update SCSS files gulp.watch(paths.scss+''**/*.scss'', [''sass'', ''copycss'']); // gulp.watch(paths.js+''**/*.js'', [''scripts'']); // gulp.watch(paths.img+''**/*'', [''images'']); }); // DEFAULT task gulp.task(''default'', [''jekyll-watch'', ''watch'',''browser-sync'']); // Handle the error function errorHandler (error) { console.log(error.toString()); this.emit(''end''); }

Tenga en cuenta la definición del controlador de errores al final y la adición de .on (''error'', errorHandler) en su tarea sass.