Babel没有在* .mjs文件中转换`class`

时间:2018-05-02 10:58:58

标签: javascript webpack babeljs babel-loader

鉴于

import test from './test.js';
import test2 from './test.mjs';

test.js以及test.mjs都包含

class A {
    test() {
        console.log('from mjs'); // or console.log('from js');
    }
}
export default A;

巴贝尔翻译

  [...];

  (0, _createClass2.default)(A, [{
    key: "test",
    value: function test() {
      console.log('from js');
    }
  }]);

  [...]

  class A {
    test() {
        console.log('from mjs');
    }
  }

  [...]

我应该如何配置babel来处理与*.mjs文件完全相同的*.js文件。我需要它们是*.mjs个文件,以便我可以在node中运行它而不进行转换。

我目前明确添加的插件是

'@babel/plugin-proposal-class-properties', '@babel/plugin-transform-runtime', '@babel/plugin-transform-classes'

1 个答案:

答案 0 :(得分:1)

您需要在 Webpack 配置中添加 *.mjs 扩展:

  module: {
    rules: [
      {
        test: /\.m?js$/,
        use: {
          loader: 'babel-loader',
          options: {
            // ...