2017-05-09 83 views
0

我使用的WebPack时收到此错误:阵营的WebPack和巴贝尔配置问题

ERROR in ./src/pages/clients/components/ClientProfile.js 
Module build failed: SyntaxError: Unexpected token (18:17) 

    16 |  } 
    17 | 
> 18 |  handleSubmit = (person) => { 
    |    ^
    19 |   console.log(person); 
    20 |  }; 
    21 | 

我有以下.babelrc配置

{ 
    "presets" : ["es2015", "stage-3", "react"] 
} 

这是我的devDependenciespackage.json

"devDependencies": { 
    "babel-core": "^6.24.1", 
    "babel-loader": "^7.0.0", 
    "babel-preset-es2015": "^6.24.1", 
    "babel-preset-react": "^6.24.1", 
    "babel-preset-stage-3": "^6.24.1", 
    "react-scripts": "0.9.5", 
    "webpack": "^2.5.1", 
    "webpack-dev-server": "^2.4.5" 
    }, 
    "scripts": { 
    "start": "webpack-dev-server --info", 
    "build": "webpack", 
    "test": "react-scripts test --env=jsdom", 
    "eject": "react-scripts eject" 
    } 

webpack.config.js

module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       loader: 'babel-loader', 
       exclude: /node_modules/ 
      }, 
      { 
       test: /\.jsx$/, 
       loader: 'babel-loader', 
       exclude: /node_modules/ 
      }, 
      { 
       test: /\.css$/, 
       loader: 'style-loader!css-loader', 
       //include: /flexboxgrid/ 
      } 
     ] 
    } 

我想不通为什么它没有在这句法

handleSubmit = (person) => { 
     console.log(person); 
    }; 

是否有人有想法? 谢谢。

回答

0

The proposal to add class fields to the language目前处于标准化过程的第2阶段。

巴别塔“舞台”预置工作,像这样:

  • babel-preset-stage-0只包含什么需要支持阶段0的功能。
  • babel-preset-stage-1包含支持阶段0 1功能所需的功能。
  • 依此类推,最多babel-preset-stage-4

因此,由于您只有babel-preset-stage-3,所以不能使用类字段。为了使它起作用,您应该卸载该软件包,安装babel-preset-stage-2,然后相应地更新您的配置文件。

有关TC39标准化过程的不同阶段所涉及的详细信息,请参阅GitHubprocess document

1

我在你的代码中做了如下修改,它工作正常。

{ 
"babel-core": "^6.6.5", 
"babel-loader": "^6.2.4", 
"babel-plugin-transform-runtime": "^6.6.0", 
"babel-preset-es2015-native-modules": "^6.6.0", 
"babel-preset-react": "^6.5.0", 
"babel-preset-stage-0": "^6.5.0", //instead of preset-stage-3 
} 

{ 
    "presets": [ 
    "es2015", 
    "react", 
    "stage-0" //instead of "stage-3" 
    ] 

}

我会阅读文档,并拿出的原因,直到别人解释它。 :)

相关问题