簡體   English   中英

Gulp-uglify包裝JS

[英]Gulp-uglify wrap JS

我有一個看起來像這樣的gulp任務:

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
  • 一飲而盡,sourcemaps

以上所有內容都正常運行。 但后來我發現gulp-uglify似乎帶有它自己的wrap函數。 如何使用gulp-uglify函數來包裝腳本?

簡短的回答:你不能,也不應該。 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'));
});

由Uglify完成的包裝也很自以為是,這意味着你不能自己添加任何東西,並且必須堅持使用它的模塊包裝器。

所以,正如所說:你的設置實際上是一個去;-)

順便說一句:出於性能原因,我只會打電話給uglify()一次

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM