tutorial español con compilar gulp gulp-watch

español - npm gulp



Gulp Watch solo corre una vez (3)

Este problema me volvió loco por un fin de semana. Lo intenté todo:

  • Añadir hecho () - Evento
  • Renombrar / Tocar / Borrar CSS objetivo
  • Sé más específico con los filepaths.

Pero la (razón de este problema y) la solución fue tan fácil que me sentí patético después de eso:

Solo actualiza tu instalación de nodejs , la mía era 0.12.x! No es de extrañar que esto no funcione.

Después de eso el evento reloj vuelve a funcionar. A veces también sale mal otra vez. Pero en este caso, simplemente guarde su archivo por segunda vez y se reconocerá. (Creo que foundation/gulp watch comprueba si los cambios son rápidos y mientras su archivo se reemplaza con el nuevo cargado)

Estoy usando este ejemplo de Gulp Watch: https://github.com/floatdrop/gulp-watch/blob/master/docs/readme.md#starting-tasks-on-events .

var gulp = require(''gulp''); var watch = require(''gulp-watch''); var batch = require(''gulp-batch''); gulp.task(''build'', function () { console.log(''Working!''); }); gulp.task(''watch'', function () { watch(''**/*.js'', batch(function () { gulp.start(''build''); })); });

Cuando lo ejecuto en mi máquina con Windows 8, solo se ejecuta la primera vez que cambio un archivo:

C:/test>gulp watch [08:40:21] Using gulpfile C:/test/gulpfile.js [08:40:21] Starting ''watch''... [08:40:21] Finished ''watch'' after 2.69 ms [08:40:31] Starting ''build''... Working! [08:40:31] Finished ''build'' after 261 µs

La próxima vez no pasa nada. ¿Por qué?


Si lees la documentación detenidamente, verás la siguiente frase:

Puede pasar la devolución de llamada simple, que se llamará en cada evento o envolverla en un buen trago para ejecutarlo una vez

Entonces, ese es básicamente el trato con gulp-batch . Para verlo constantemente, simplemente elimine la llamada por lotes:

gulp.task(''build'', function (done) { console.log(''Working!''); done(); }); gulp.task(''watch'', function () { watch(''app/*.js'', function () { gulp.start(''build''); }); });

(y agregue la devolución de llamada ''hecho'' a la build para avisarle a Gulp cuando haya terminado).

Por cierto ... no estoy seguro, pero creo que gulp-watch no solo es para ver archivos, sino también para devolver directamente un objeto de vinilo. Entonces, en realidad, usar el gulp.watch debería tener el mismo efecto:

gulp.task(''watch'', function () { gulp.watch(''app/**/*.js'', [''build'']); });


Tuve el mismo problema y usé lo mismo que ddprrt. La diferencia fue usar el comodín del directorio como se adjunta a la ruta absoluta.

Cambié esto:

gulp.task(''watch'', function() { gulp.watch(''sass/shortcutcss/*.scss'', [''sass'']) });

a esto:

gulp.task(''watch'', function() { gulp.watch(''sass/**/*.scss'', [''sass'']) });