我正在尝试使用gulp 3.9来缩小我的资源文件。
我在gulpfile中创建了两个不同的任务,看起来像这样
var gulp = require("gulp"),
concat = require("gulp-concat"),
cssmin = require("gulp-cssmin"),
filter = require('gulp-filter'),
sourcemaps = require('gulp-sourcemaps'),
rename = require('gulp-rename'),
uglify = require('gulp-uglify-es').default,
merge = require("merge-stream"),
del = require("del"),
bundleconfig = require("./bundleconfig.json");
gulp.task("min:js", function () {
var tasks = getBundles(regex.js).map(function (bundle) {
return gulp.src(bundle.inputFiles, { base: ".", sourcemaps: true })
.pipe(filter('**/*.js'))
.pipe(concat(bundle.outputFileName))
.pipe(sourcemaps.write('../maps')) // shouldn't this create file.js.map file?
.pipe(gulp.dest("."))
.pipe(uglify())
.pipe(rename({ suffix: '.min' }))
.pipe(sourcemaps.write('../maps')) // shouldn't this create file.min.js.map file?
.pipe(gulp.dest("."));
});
return merge(tasks);
});
gulp.task("min:css", function () {
var tasks = getBundles(regex.css).map(function (bundle) {
return gulp.src(bundle.inputFiles, { base: ".", sourcemaps: true })
.pipe(filter('**/*.css'))
.pipe(concat(bundle.outputFileName))
.pipe(sourcemaps.write('../maps'))
.pipe(gulp.dest("."))
.pipe(cssmin())
.pipe(rename({ suffix: '.min' }))
.pipe(sourcemaps.write('../maps'))
.pipe(gulp.dest("."));
});
return merge(tasks);
});
但是,以上代码似乎仅生成.min和常规文件(非最小化文件),而不生成源映射文件。
每次执行“ min:js”和“ min:css”任务时,如何使用Gulp生成3个js,css和sourcemap文件?
根据文档,您应该初始化源映射:
.pipe(sourcemaps.init())
代最小化的js案例:
gulp.src(bundle.inputFiles, { base: ".", sourcemaps: true })
.pipe(filter('**/*.js'))
.pipe(sourcemaps.init())
.pipe(concat(bundle.outputFileName))
.pipe(sourcemaps.write('../maps'))
.pipe(uglify())
.pipe(rename({ suffix: '.min' }))
.pipe(gulp.dest(".")) ;
然后相应地更改CSS缩小。 Click her for more info about sourcemap