箭头函数语法不能与webpack一起使用?

宝儿 · 06月02日

我在react-redux上制作一个应用程序。我正在使用webpack捆绑和babel进行转译。当我尝试在代码中使用箭头功能时。它给我的错误是:

Module build failed: SyntaxError: Unexpected token (34:15)

};

> handleSubmit = (event) => {
                  ^
  event.preventDefault();

  this.props.dispatch(actions.addTodo(this.state.inputText));

我的webpack配置文件如下所示:

module.exports = {
  devtool: 'inline-source-map',
  entry: [
    'webpack-hot-middleware/client',
    './client/client.js'
  ],
  output: {
    path: require('path').resolve('./dist'),
    filename: 'bundle.js',
    publicPath: '/'
  },
  plugins: [
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ],
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        query: {
          presets: ['react', 'es2015', 'react-hmre']
        }
      }
    ]
  }
};

并且我在package.json中使用以下babel软件包:

 "babel-cli": "^6.6.5",
"babel-core": "^6.4.5",
"babel-loader": "^6.2.2",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-react-hmre": "^1.1.1",

怎么了?

回答(3)
时间
3 · 2020-06-02 09:58:12

另外,如果您想适应新的babel节目,可以使用babel.config.jsfile代替.babelrc这个想法就像webpack.config.jsfile 一样,但是用于babel配置。它的用法如下:

module.exports = {
  presets: [ "@babel/preset-env", "@babel/preset-react" ],
  plugins: [ "@babel/plugin-transform-arrow-functions", "@babel/plugin-proposal-class-properties" ]
}

确保安装所有这些插件以成功编译。我应该说,通货膨胀本身只是建议对所有这些.babelrc文件都进行归档。但是你知道,我们不是每个人。

泡芙
2 · 2020-06-02 09:58:12

首先,您需要将.babelrc文件编辑为

{
 "presets": ["react", ["es2016"]],
 "plugins": [
     "babel-plugin-transform-class-properties"
  ]
}

第二npm install babel-plugin-transform-class-properties和babel-preset-es2016

镜风
1 · 2020-06-02 09:58:12

在我的应用程序中,此问题是由错误地将较少加载程序错误地添加为依赖包而不是devDependency引起的。

在package.json文件中将更少的加载程序从依赖项移至devDependencies可以解决此问题。

你的回答

加载中...
⌘+Return 发表
发表

温馨提示:登录后可发表评论或回复

关闭,朕知道了

扫码关注微信公众号或小程序