Gulp-uglify, ошибка unable to minify JavaScript

начал собирать проэкт и тут такое (с gulp не часто приходилось работать)


вот код gulpfile.js:

    gulp.task('build', ['views'] ,function () {
    return gulp.src('./app/index.html')
        .pipe(cleanDest('public'))
        .pipe(useref())
        .pipe(gulpif('*.js', uglify()))
        .pipe(uglify().on('error', function(e){
            console.log(e);
         }))
        .pipe(gulpif('*.css', csso()))
        .pipe(gulp.dest('public'));
});

что делать?

Я не эксперт по галпу, но судя по задаче и ошибке из консоли, твой минификатор JS кода (gulp-uglify) пытается минифицировать HTML код в index.html. Он начинает парсить index.html, (именно его твоя задача берет как ресурс для обработки в строке return gulp.src('./app/index.html')), встречает первым символом знак <, удивляется и выдает ошибку — для обработчика JS кода это синтаксическая ошибка при парсинге. Нужно корректировать задачу в галпе. Лучше разделить обработку html, js, css, картинок и т.д. в разные задачи. А потом запускать их требуемыми группами для сборки проекта.

Не знаю как именно работают gulpif и useref, но очень похоже на то что задача заточена под обрабаботку и HTML, и JS, и CSS файлов. И уже в зависимости от файла вызывать обработку — минификацию JS и CSS соответственно.

Больше всего смущает это:
.pipe(gulpif('*.js', uglify())) .pipe(uglify().on('error', function(e){ console.log(e); }))

Подозреваю, что после проверки (.pipe(gulpif('*.js', uglify()))), является ли выбранный файл (в твоем случае index.html) JS файлом, ты все равно следующей строкой принудительно запускаешь минификацию через gulp-uglify (даже если это не JS файл).

Попробуй заменить это:
.pipe(gulpif('*.js', uglify())) .pipe(uglify().on('error', function(e){ console.log(e); }))

на это:
.pipe(gulpif('*.js', uglify().on('error', function(e) { console.log(e) })))