So habe ich diese nette gulpfile und alle, und es funktioniert reibungslos bis auf diese eine Sache.Watch Aufgabe nicht fortgesetzt, nachdem Fehler von Gulp-Klempner behoben wurde trotz errorHandler Callback
Ich lasse gulp-plumber
laufen, um zu stoppen, die Uhraufgabe auf einem Fehler abzustürzen, der Fehler wird davon gefangen, aber dann, wenn ich den Fehler behebe, verweigern die Beobachter, um fortzufahren. Ich fügte die handleError
Rückruf hinzu, aber es scheint nichts zu tun, obwohl this article sagt, dass es sollte. Das treibt mich in den Wahnsinn, weil ich Leute kenne, die es funktionieren lassen, aber keine der Lösungen, die ich gefunden habe, scheint zu funktionieren. Habe ich etwas verpasst?
EDIT: Wenn ich einen Fehler in _lists.scss
zum Beispiel der Fehler wie folgt geworfen Aussehen:
[22:04:43] Plumber found unhandled error:
Error in plugin 'gulp-sass'
Message:
styles\partials\_lists.scss
1:1 invalid top-level expression
Dies bedeutet, dass ich auch den Fehler behandeln on.('error', function() {})
manuell mit? Weil ich dachte, dies sei Klempner-Zweck, um die manuelle Fehlerbehandlung zu entfernen. Ich habe sogar versucht, den Fehler manuell zu erfassen, aber es spuckte nur den Fehler in der Konsole aus und weigerte sich, wie zuvor fortzufahren.
Hier ist der Klempner Rohrteil:
// Compile our SCSS into minified CSS
gulp.task('styles', function() {
return gulp.src('styles/main.scss')
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(sass({ style: 'expanded' }))
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest('dist/styles'))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest('dist/styles'))
.pipe(notify({ message: 'Finished compiling SCSS' }))
});
Und hier ist das ganze gulpfile.js
:
var gulp = require('gulp'),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
minifycss = require('gulp-minify-css'),
plumber = require('gulp-plumber'),
jshint = require('gulp-jshint'),
uglify = require('gulp-uglify'),
imagemin = require('gulp-imagemin'),
rename = require('gulp-rename'),
concat = require('gulp-concat'),
notify = require('gulp-notify'),
cache = require('gulp-cache'),
livereload = require('gulp-livereload'),
htmlmin = require('gulp-htmlmin'),
del = require('del');
// Minify our HTML
gulp.task('html', function() {
return gulp.src('*.html')
.pipe(htmlmin({ collapseWhitespace: true }))
.pipe(gulp.dest('dist'))
});
// Compile our SCSS into minified CSS
gulp.task('styles', function() {
return gulp.src('styles/main.scss')
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(sass({ style: 'expanded' }))
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest('dist/styles'))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest('dist/styles'))
.pipe(notify({ message: 'Finished compiling SCSS' }))
});
// Concat and compile our JS into a minified file
gulp.task('scripts', function() {
return gulp.src('scripts/**/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(concat('main.js'))
.pipe(gulp.dest('dist/scripts'))
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest('dist/scripts'))
.pipe(notify({ message: 'Finished compiling scripts' }));
});
// Compress our images
gulp.task('images', function() {
return gulp.src('images/**/*.js')
.pipe(cache(imagemin({ optimizationLevel: 5, progressive: true, interlaced: true })))
.pipe(gulp.dest('dist/images'))
.pipe(notify({ message: 'Finished compiling images' }));
});
// Clean/empty our dist folder
gulp.task('clean', function(cb) {
del(['dist/styles', 'dist/scripts', 'dist/images'], cb)
});
// Run all our tasks when using 'gulp' command in CLI
gulp.task('default', ['clean'], function() {
gulp.start('html', 'styles', 'scripts', 'images');
});
// Watch our files for changes
gulp.task('watch', function() {
gulp.watch('styles/**/*.scss', ['styles']);
gulp.watch('scripts/**/*.js', ['scripts']);
gulp.watch('images/**/*', ['images']);
});
Das gleiche Problem hier, sieht aus wie es in diesem Commit geändert wurde: https://github.com/floatdrop/gulp-plumber/commit/49b5312e5653c9b3eedfdd488a088722bccc8925 – cloying