Javascript 如何将源地图从Babel transpiling保存到r.js uglifying?

Javascript 如何将源地图从Babel transpiling保存到r.js uglifying?,javascript,requirejs,ecmascript-6,r.js,babeljs,Javascript,Requirejs,Ecmascript 6,R.js,Babeljs,我正在编写ES6 JavaScript模块,并使用Babel将它们传输到ES5。Babel生成指向原始ES6代码的源映射。然后,我使用r.js获取这些ES5 AMD模块,并将它们组合起来,使之丑陋。r、 js创建一个显示ES5文件的源映射。我想要第一步中的ES6。我的grunt文件如下所示: module.exports = function(grunt) { require('load-grunt-tasks')(grunt); // npm install --save-dev loa

我正在编写ES6 JavaScript模块,并使用Babel将它们传输到ES5。Babel生成指向原始ES6代码的源映射。然后,我使用r.js获取这些ES5 AMD模块,并将它们组合起来,使之丑陋。r、 js创建一个显示ES5文件的源映射。我想要第一步中的ES6。我的grunt文件如下所示:

module.exports = function(grunt) {

  require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks

  // Project configuration.
  grunt.initConfig({
    babel: {
      options: {
        modules: "amd",
        sourceMap: true
      },
      dist: {
        files: {
          "es5/editor.js": "src/editor.js",
          "es5/editor-events.js": "src/editor-events.js"
        }
      }
    },
    requirejs: {
      production: {
        options: {
          baseUrl: "es5",
          mainConfigFile: "es5/require.config.js",
          name: "../node_modules/almond/almond",
          include: ["editor"],
          out: "dist/ed.js",
          optimize: "uglify2",
          generateSourceMaps: true,
          preserveLicenseComments: false
        }
      }
    }
  });

  // Default task(s).
  grunt.registerTask('default', ['babel', 'requirejs']);

};
browserify app.js -t babelify -d -o bundle.js

它完美地汇编了一切。但它丢失了漂亮的ES6源地图。有办法保存它们吗?有没有更好的构建过程可以让我创建一个浏览器友好的JavaScript文件?

构建应用程序时不应该使用两个不同的步骤。一个用于运输,另一个用于捆扎。你应该走一步

您可以使用
browserify
将它们捆绑起来,并将
babelify
作为transpiler。该命令如下所示:

module.exports = function(grunt) {

  require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks

  // Project configuration.
  grunt.initConfig({
    babel: {
      options: {
        modules: "amd",
        sourceMap: true
      },
      dist: {
        files: {
          "es5/editor.js": "src/editor.js",
          "es5/editor-events.js": "src/editor-events.js"
        }
      }
    },
    requirejs: {
      production: {
        options: {
          baseUrl: "es5",
          mainConfigFile: "es5/require.config.js",
          name: "../node_modules/almond/almond",
          include: ["editor"],
          out: "dist/ed.js",
          optimize: "uglify2",
          generateSourceMaps: true,
          preserveLicenseComments: false
        }
      }
    }
  });

  // Default task(s).
  grunt.registerTask('default', ['babel', 'requirejs']);

};
browserify app.js -t babelify -d -o bundle.js
注意:
-d
(调试)将启用sourcemaps。他们将指向es6文件