Gulp-uglify wrap JS
У меня есть глоток, который выглядит так:
gulp.task('compressjs', function() {
gulp.src('local/**/*.js')
.pipe(sourcemaps.init())
// purpose compress here is only to give better error report
.pipe(uglify())
.pipe(concat('all.min.js'))
.pipe(wrap('(function(){"use strict"; <%= contents %>\n})();'))
// compress here to get best final compression
.pipe(uglify())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('public/app'));
});
Это задание глотка использует:
- проглатывать-уродовать
- Глоток-обертка
- Глоток-CONCAT
- проглатывать-sourcemaps
Все выше работает правильно. Но потом я обнаружил, что gulp-uglify
кажется, идет со своим wrap
функция. Как я могу использовать gulp-uglify
функция, чтобы обернуть сценарий?
1 ответ
Краткий ответ: Вы не можете и не должны. Философия Gulp заключается в том, что одна задача должна делать только одну вещь. Таким образом, ваши настройки на самом деле прекрасно. Так что придерживайтесь своей конфигурации.
Немного более длинный ответ: есть плагин под названием gulp-uglifyjs
что позволяет делать все оригинальное uglify
можно сделать (включая обертку и тому подобное). Тем не менее, сообщество Gulp занесено в черный список как дубликат, а не "так, как предполагалось".
Код будет выглядеть так:
var uglify = require('gulp-uglifyjs');
gulp.task('scripts', function(){
return gulp.src('./app/**/*.js')
.pipe(uglify({
wrap: true
}))
.pipe(gulp.dest('./dest'));
});
Обертка, выполненная Uglify, также очень самоуверенна, что означает, что вы не можете ничего добавить самостоятельно и должны придерживаться ее обертки модуля.
Итак, как и было сказано: на самом деле ваша установка - та, на которую стоит пойти;-)
Кстати: по причинам производительности я бы назвал uglify()
только раз