>我有一个看起来像这样的吞咽任务:
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-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()
打电话一次