我正试图用gulp生成丑化javascript的源地图文件。我的任务如下:
gulp.task('scripts', ['clean'], function() {
return gulp.src([ 'src/app/**/*.js' ])
.pipe(sourcemaps.init())
.pipe(concat('app.min.js'))
.pipe(uglify())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dest/app'));
});
gulp-sourcemaps
生成的输出映射包含一个空的names
数组,这可以防止浏览器将函数参数解算回其原始名称。
在我看来,gulp-sourcemaps
没有正确合并链接的地图文件?gulp-concat
不输出names
属性(它不需要:它只是连接),但gulp-uglify
确实:
gulp.task('scripts', ['clean'], function() {
return gulp.src([ 'src/app/**/*.js' ])
.pipe(sourcemaps.init())
// .pipe(concat('app.min.js'))
.pipe(uglify())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dest/app'));
});
上面的代码使用names
属性集生成正确的映射文件。
我做错了什么,还是有人有解决这个问题的方法?
这似乎是Uglify2中的一个bug。应该通过这个简单的修复来解决:
https://github.com/mishoo/UglifyJS2/pull/546