Ho un problema con gulp
. Corro gulp-watch
insieme a gulp-less
e gulp-clean
. Tutto funziona perfettamente.Gulp.js smette di compilare MENO quando guardato dopo che c'è stato un errore nei file LESS
Quando posso modificare somefile.less
li risparmio con un punto e virgola mancante o forse mi sbaglio lasciare un trailing ;s
, basta avere errori nel mio codice durante il salvataggio, gulp-less
registra un errore nella console. Dopo averlo risolto, lo gulp-watch
continua a guardare i file, ma gulp-less
non si avvia e non viene compilato. Quando mi fermo gulp
ed eseguo di nuovo nel terminale, tutto torna alla normalità.
Ecco il mio gulpfile.js
:
var gulp = require('gulp');
var clean = require('gulp-clean');
var gutil = require('gulp-util');
var less = require('gulp-less');
var watch = require('gulp-watch');
var path = require('path');
gulp.task('clean', function() {
return gulp.src('src/main/webapp/styles/build', {read: false})
.pipe(clean().on('error', gutil.log))
});
gulp.task('less', function() {
return gulp.src(['src/main/webapp/styles/main.less'], {base: 'src/main/webapp/styles/'})
.pipe(less().on('error', gutil.log))
.pipe(gulp.dest('src/main/webapp/styles/build'))
.on('error', gutil.log);
});
gulp.task('watch', function() {
watch('src/main/webapp/styles/**/*.{less, css}', function() {
gulp.start('less')
.on('error', gutil.log);
})
});
gulp.task('default', ['clean'], function() {
gulp.start(['less', 'watch'])
.on('error', gutil.log);
});
Ed ecco i miei devDependencies
:
"devDependencies": {
"gulp": "^3.8.10",
"gulp-clean": "^0.3.1",
"gulp-less": "^2.0.1",
"gulp-util": "^3.0.2",
"gulp-watch": "^3.0.0"
}
Infine, ecco il messaggio nella console:
[10:21:03] imports/productSearchPage.less was changed
[10:21:03] Starting 'less'...
[10:21:03] { [Error: Unrecognised input. Possibly missing something in file /src/main/webapp/styles/imports/productSearchPage.less line no. 1008]
type: 'Parse',
filename: '/src/main/webapp/styles/imports/productSearchPage.less',
index: 19127,
line: 1008,
callLine: NaN,
callExtract: undefined,
column: 0,
extract: [ '', '', undefined ],
message: 'Unrecognised input. Possibly missing something in file /src/main/webapp/styles/imports/productSearchPage.less line no. 1008',
stack: undefined,
lineNumber: 1008,
fileName: '/src/main/webapp/styles/imports/productSearchPage.less',
name: 'Error',
showStack: false,
showProperties: true,
plugin: 'gulp-less',
__safety: { toString: [Function] } }
[10:21:04] imports/productSearchPage.less was changed
[10:21:08] imports/productSearchPage.less was changed
^C
Puoi informi Cosa c'è che non va nell'attività gulp-watch
e aiutami ma ke esegue gulp-less
dopo che gli errori sono stati rimossi, senza riavviare gulp
.
EDIT: mio modificati gulp-less
compito
gulp.task('less', function() {
return gulp.src(['src/main/webapp/styles/main.less'], {base: 'src/main/webapp/styles/'})
.pipe(less().on('error', gutil.log))
.pipe(gulp.dest('src/main/webapp/styles/build'))
.on('error', function(err) {
gutil.log(err);
this.emit('end');
});
});
Questo bit ha avuto il minimo da rewatching per me this.emit ('end'). Grazie per il tuo post! – ctong