缩小 ES6 并使用 Browserify 生成源映射

Minify ES6 and generate source-maps with Browserify

我使用 browserify6to5ify 将 ES6 编译为 JS 和 assemble 项目。 问题是我找不到任何解决方案,如何缩小已编译的 javascript,以及如何为缩小的 js 生成源映射。

我的构建任务代码是:

'use strict';

var gulp = require('gulp'), 
source = require('vinyl-source-stream'),
plumber = require('gulp-plumber'),
browserify = require('browserify'),
buffer = require('vinyl-buffer'),
uglify = require('gulp-uglify'),
buildErrorHandler = require('./../utilities/build-error-handler').handleBuildError
;

gulp.task('js:build-scripts', function() {
  var commandLineParameters = process.argv.slice(2);
  var releaseModeRequired = commandLineParameters.indexOf('--release') > -1;

  var bundler = browserify({
    debug: true,
    entries: ['./src/js/entry-point.js']
  })
  ;

  var pipeLine =  bundler 
  .transform('6to5ify')
  .bundle()
  .on('error', buildErrorHandler)
  .pipe(plumber({
    errorHandler: buildErrorHandler
  }))
  .pipe(source('application.js'));

  if(releaseModeRequired){
    pipeLine = pipeLine.pipe(buffer()) 
    .pipe(uglify());
  }

  pipeLine =pipeLine.pipe(gulp.dest('build/js'))
  ;

  return pipeLine;
});

如果我不压缩代码,sourcemaps 工作正常,但如果我压缩它,sourcemaps 就会消失。

我尝试了几种解决方案,例如 this or this,但其中 none 有效。

已编辑:

"browserify": "^8.1.3",
"gulp": "^3.8.10",

长期以来,这一直是 Browserify + Uglify.js 的一个问题。 It got fixed in this commit但尚未发布,与 v2.4.21 一起发布。