代码之家  ›  专栏  ›  技术社区  ›  kockburn

类中的箭头函数引发Webpack Encore错误

  •  2
  • kockburn  · 技术社区  · 6 年前

    配置

    我在用 与我的 要编译的项目 项目。到目前为止,我已经使用了 webpack.config.js 设置,应与反应开箱即用 when enabling it :

    // webpack.config.js
    // ...
    
    Encore
        // ...
        .enableReactPreset()
    ;
    

    我试过的:

    我继续添加babel配置(我认为不需要),希望它可以解决问题,但它没有:

    .configureBabel(function(babelConfig) {
            // add additional presets
            babelConfig.presets.push('es2017');
        })
    

    代码示例:

    下面是一个应该工作的示例,但它不编译并引发以下错误:

    语法错误:意外的标记

    import React, {Component} from 'react';
    
    //This works
    const someExteriorHandler = () => {};
    
    export default class Example extends Component {
       //error bad syntax, points specifically at the equal sign.
       someHandler = () => {
    
       }
       render(){return(<h1>This is a test</h1>)}
    }
    

    问题

    我怎样才能让babel编译器 在中编译箭头函数 课程?

    1 回复  |  直到 6 年前
        1
  •  0
  •   kockburn    6 年前

    这个问题是 solved .

    在类中分配箭头函数不是ES6的一部分。它 是即将发布的ES版本提案草案的一部分。巴贝尔能 但你需要在 Babelrc文件。在Encore中提供的默认babel配置 不配置babel不启用蒸腾 实验特性。

    安装实验功能

    yarn add --dev babel-plugin-transform-class-properties babel-plugin-transform-object-rest-spread
    

    配置webpack.config.js

    .configureBabel(function(babelConfig) {
    
        //This is needed.
    
        babelConfig.plugins = ["transform-object-rest-spread","transform-class-properties"]
    })
    

    它现在应该编译,同时还具有所有JSX特性。