2015-04-27 3 views
3

У меня есть глоток задача, выглядеть следующим образом:Глоток-уродовать обертывание 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')); 
}); 

Эта задача Глоток использует:

  • Глоток-уродовать
  • глотка оберните
  • gulp- concat
  • gulp-sourcemaps

Все вышеперечисленное работает нормально. Но потом я обнаружил, что gulp-uglify, похоже, поставляется с собственной функцией wrap. Как использовать функцию gulp-uglify, чтобы обернуть скрипт?

ответ

-1

Короткий ответ: вы не можете и не должны. Философия Gulp заключается в том, что одна задача должна просто сделать одно. Таким образом, ваша настройка на самом деле прекрасна. Так что придерживайтесь своей конфигурации.

Немного более длинный ответ: есть плагин под названием gulp-uglifyjs, который позволяет делать все, что может сделать оригинал uglify (включая упаковку и тому подобное). Тем не менее, он включен в черный список сообщества Gulp как дубликат, а не «в том смысле, каким должен был быть Gulp».

код будет выглядеть следующим образом:

var uglify = require('gulp-uglifyjs'); 

gulp.task('scripts', function(){ 
    return gulp.src('./app/**/*.js') 
     .pipe(uglify({ 
      wrap: true 
     })) 
     .pipe(gulp.dest('./dest')); 
}); 

Оберточная сделано уродовать также очень самоуверенны, что означает, что вы ничего не можете добавить на свой собственный и должны придерживаться его модуль оболочки.

Так что, как сказал: Ваша установка на самом деле один пойти на ;-)

BTW .: По причинам производительности, я бы назвал uglify() только один раз