与Grunt一起使用的Babel与使用Webpack时的工作方式不同

时间:2016-10-03 21:12:00

标签: javascript gruntjs webpack ecmascript-6 babeljs

我有一个使用Babel for Webpack的项目,将ES6代码转换为普通的Js。这非常有效,包括导入的类等,见下文。

结果:

var _Person = __webpack_require__(2);

var vic = new _Person.person("Fred McIntire", "Web Developer");
vic.EchoProperties();

Webpack.config.js

module: {
    loaders: [{
        test: /\.js$/,
        exclude: "/node_modules/",
        loader: ['babel'],
        query: {
            presets: ['es2015']
        }
    }]
},

然而,当在另一个项目中使用Babel和Grunt时,因此“grunt-babel”插件,我注意到它默认导入CommonJs并且不包括导入的类。

结果

var _Person=require("./modules/Person"),
vic=new _Person.person("Fred McIntire","Web Developer");

vic.EchoProperties();

gruntfile.js

    babel: {
        options: {
            sourceMap: true,
            presets: ['es2015'],
            plugins: ['transform-es2015-modules-amd']
        },
        dist: {
            files: {
                'assets/js/transpiled/app.es6.js': 'assets/js/custom/app.js'
            }
        }
    },

(我包括“插件:['transform-es2015-modules-amd']”仅用于测试目的。)

我希望咕噜咕噜咕噜咕噜地说:(并包括进口)

var _Person = __webpack_require__(2); 

var _Person=require("./modules/Person")

因此,我如何更新grunt-babel的gruntfile.js设置,以便以与Webpack一样的方式运行?

提前致谢...

0 个答案:

没有答案