事实证明我需要使用 gulp-rename
插件并在“代码压缩”之前先输出合并的文件。以下是代码:
gulp.src('src/js/*.js')
.pipe(concat('all.js'))
.pipe(gulp.dest('dist/js'))
.pipe(rename('all.min.js'))
.pipe(uglify())
.pipe(gulp.dest('dist/js'));
var gulp = require('gulp'),
gp_concat = require('gulp-concat'),
gp_rename = require('gulp-rename'),
gp_uglify = require('gulp-uglify');
gulp.task('js-fef', function(){
return gulp.src(['file1.js', 'file2.js', 'file3.js'])
.pipe(gp_concat('concat.js'))
.pipe(gulp.dest('dist'))
.pipe(gp_rename('uglify.js'))
.pipe(gp_uglify())
.pipe(gulp.dest('dist'));
});
gulp.task('default', ['js-fef'], function(){});
一开始从 grunt
转过来有点困惑,不过现在明白了。希望能对新手学习 gulp
有所帮助。
另外,如果需要源映射,请使用以下更新后的代码:
var gulp = require('gulp'),
gp_concat = require('gulp-concat'),
gp_rename = require('gulp-rename'),
gp_uglify = require('gulp-uglify'),
gp_sourcemaps = require('gulp-sourcemaps');
gulp.task('js-fef', function(){
return gulp.src(['file1.js', 'file2.js', 'file3.js'])
.pipe(gp_sourcemaps.init())
.pipe(gp_concat('concat.js'))
.pipe(gulp.dest('dist'))
.pipe(gp_rename('uglify.js'))
.pipe(gp_uglify())
.pipe(gp_sourcemaps.write('./'))
.pipe(gulp.dest('dist'));
});
gulp.task('default', ['js-fef'], function(){});
有关选项和配置的更多信息,请参阅gulp-sourcemaps。
更新 - 2022年2月
如今,使用Gulp4和Async / Await功能处理构建任务可能会更容易:
const fs = require('fs/promises');
const concat = require('concat');
const uglify = require('uglify-js');
let files_arr = ['file1.js', 'file2.js', 'file3.js'];
async function myGulpTask()
{
var concat_str,
uglify_str
;
concat_str = await concat(files_arr);
await fs.writeFile('concat.js', concat_str, 'utf8');
uglify_str = await uglify.minify(concat_str, {mangle:false}).code;
await fs.writeFile('uglify.js', uglify_str, 'utf8');
}
module.exports = {
myTask: myGulpTask
};
然后从命令行界面执行:
gulp myTask