如何在UglifyJS(Grunt)之后为原始(前Babel)源生成源地图

时间:2017-04-24 15:55:17

标签: gruntjs babeljs source-maps uglifyjs

我们的生产代码需要缩小/验证ES 5,但在源代码中我们使用ES 6(并使用Babel进行转换)。

我正在尝试在已编译的代码上运行UglifyJS后,确定将源映射维护到原始ES 6源代码的正确工作流程。

我们正在使用GruntJS。

任何现有的解决方案?

1 个答案:

答案 0 :(得分:1)

首先,一些构建配置会使问题更容易回答。但假设你单独运行Babel和Uglify。这样说:

grunt.initConfig({
  babel: {
    options: {
      sourceMap: true
    },
    dist: {
      files: {
        "dist/app.js": "src/app.js"
      }
    }
  },
  uglify: {
    my_target: {
      files: {
        'dist/app.min.js': ['dist/app.js']
      }
    }
  }      
});

您需要使用babel-plugin-uglify,如下所示:

grunt.initConfig({
  babel: {
    options: {
      sourceMap: true,
      plugins: ["uglify:after"]
    },
    dist: {
      files: {
        "dist/app.min.js": "src/app.js"
      }
    }
  }      
});