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

时间:2015-03-02 04:56:47

标签: optimization browserify source-maps

我使用 browserify 6to5ify 将ES6编译为JS并组装项目。 问题是我找不到任何解决方案,如何缩小已编译的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;
});

如果我不缩小代码,源代码工作正常,但如果我对其进行了解释,源代码就会消失。

我尝试了多种解决方案,例如thisthis,但都没有。

编辑:

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

1 个答案:

答案 0 :(得分:2)

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