Минимизирующий скрипт gulp-uglify, который не должен
Когда я бегу gulp scripts
и all.js, и all.min.js в конечном итоге будут минимизированы. Кто-нибудь знает, почему это происходит?
gulp.task("scripts", function() {
var concatted = gulp.src(['js/first.js', 'js/second.js'])
.pipe(concat('all.js'));
// output concatenated scripts to js/all.js
concatted.pipe(gulp.dest('js'));
// minify concatenated scripts and output to js/all.min.js
concatted.pipe(uglify())
.pipe(rename('all.min.js')
.pipe(gulp.dest('js'))
});
2 ответа
Решение
Проблема здесь
// output concatenated scripts to js/all.js
concatted.pipe(gulp.dest('js'));
Вы не возвращаете измененный поток в concatted
,
Вы можете изменить это на
// output concatenated scripts to js/all.js
concatted = concatted.pipe(gulp.dest('js'));
но это также работает как ожидалось
gulp.task("scripts", function() {
return gulp.src(['js/first.js', 'js/second.js'])
.pipe(concat('all.js'))
.pipe(gulp.dest('js'))
.pipe(uglify())
.pipe(rename('all.min.js')
.pipe(gulp.dest('js'));
});
Происходит то, что вы объединяете два сценария
var concatted = gulp.src(['js/first.js', 'js/second.js'])
.pipe(concat('all.js'));
// Both scripts are now in 'all.js'
Прежде чем минимизировать их
concatted.pipe(uglify())
.pipe(rename('all.min.js')
.pipe(gulp.dest('js'))
Одним из возможных решений может быть:
gulp.src('js/first.js')
.pipe(uglify())
.pipe(rename('all.min.js'))
.pipe(gulp.dest('js'));
Надеюсь, поможет.