我有一个看起来像这样的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-uglify
似乎带有它自己的wrap
函数。如何使用gulp-uglify
函数来包装脚本?
答案 0 :(得分:-1)
简短的回答:你不能,你也不应该这样做。 Gulp的理念是,一项任务应该只做一件事。所以你的设置实际上非常好。所以坚持你的配置。
稍微长一点的回答:有一个名为gulp-uglifyjs
的插件,它可以让您完成原始uglify
可以执行的所有操作(包括包装和类似的东西)。然而,它被Gulp社区列入黑名单,因为它是一个复制品而不是Gulp本来就是&#34;。
代码如下所示:
var uglify = require('gulp-uglifyjs');
gulp.task('scripts', function(){
return gulp.src('./app/**/*.js')
.pipe(uglify({
wrap: true
}))
.pipe(gulp.dest('./dest'));
});
Uglify完成的包装也非常自以为是,这意味着您无法自行添加任何内容,并且必须坚持使用它的模块包装。
所以,正如所说:你的设置实际上是一个; - )
顺便说一下:出于性能原因,我只会打电话给uglify()