Самым простым способом исправить было бы использовать Глоток-водопроводчика, чтобы обработать ошибку немного более изящно:
var plumber = require("gulp-plumber");
gulp.task('scripts',() => {
return gulp.src('assets/js/src/*.js')
.pipe(plumber())
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish', {beep: true}))
.pipe(concat('main.js'))
.pipe(gulp.dest('assets/js/build/'))
.pipe(uglify())
.pipe(gulp.dest('assets/js/'))
.pipe(browserSync.stream({stream: true}));
});
Лично мне не нравится это решение, потому что это будет препятствовать вашему Минимизированный файл от обновления. Вот что я бы рекомендовал:
var jshintSuccess = function (file) {
return file.jshint.success;
}
gulp.task('scripts',() => {
return gulp.src('assets/js/src/*.js')
.pipe(sourcemaps.init())
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish', {
beep: true
}))
.pipe(gulpif(jshintSuccess, uglify()))
.pipe(concat('main.js'))
.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('assets/js/'))
.pipe(browserSync.stream({
stream: true
}));
});
Во-первых, обратите внимание, что я не пишу в несколько пунктов назначения. Вместо этого, я использую sourcemaps, так что вам не нужен unminified код. Во-вторых, я использую gulp - если условно передать код через uglify на основе результатов jshint. Код с ошибками будет обходить uglify так, чтобы он все-таки попадал в ваш файл назначения.
Теперь вы можете проверить и отладить его с помощью инструментов разработчика.
Примечание: Я рекомендую это только для местной разработки. Я бы не связывал это с конвейером непрерывной интеграции, потому что вам нужен только хороший код для его создания. Либо настройте для него другую задачу, либо добавьте другое условие gulp-if, чтобы предотвратить создание неработающего кода на основе переменных среды.
Это сработало! Большое спасибо :) – jst16