【问题标题】:Gulp-uglify wrap JSGulp-uglify 包装 JS
【发布时间】:2015-04-27 08:27:49
【问题描述】:

我有一个看起来像这样的 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 任务使用:

  • gulp-丑化
  • gulp-wrap
  • gulp-concat
  • gulp-sourcemaps

以上一切运行正常。但后来我发现gulp-uglify 似乎带有它自己的wrap 功能。如何使用gulp-uglify 函数包装脚本?

【问题讨论】:

    标签: javascript node.js gulp gulp-concat 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'));
    });
    

    Uglify 做的包装也很自以为是,也就是说你不能自己添加任何东西,必须坚持使用它的模块包装器。

    所以,如前所述:您的设置实际上是要进行的设置;-)

    顺便说一句:出于性能原因,我只会给uglify()打一次电话

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多