Я использую webpack-бис с моим проектом Symfony для компиляции моего проекта реагировать. До сих пор я использовал базовую настройку webpack.config.js, которая должна работать из коробки с реакцией при включении:
// webpack.config.js
// ...
Encore
// ...
.enableReactPreset()
;
Я пошел дальше и добавил конфигурации babel (которые, как мне кажется, не нужны) в надежде, что это решит проблему, но этого не произошло:
.configureBabel(function(babelConfig) {
// add additional presets
babelConfig.presets.push('es2017');
})
Вот пример того, что должно работать, но он не компилируется и выдает следующую ошибку:
Syntax Error: Unexpected token
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 в webpack-бис компилировать стрелочные функции в классах javascript?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Эта проблема была решено.
Having assignment of arrow functions in a class is not part of ES6. It is part of a draft proposal for an upcoming ES version. Babel is able to transpile it, but you will need to enable this transformation in the babelrc file. The default babel config shipped in Encore when you don't configure babel does not enable the transpilation of experimental features.
yarn add --dev babel-plugin-transform-class-properties babel-plugin-transform-object-rest-spread
.configureBabel(function(babelConfig) {
//This is needed.
babelConfig.plugins = ["transform-object-rest-spread","transform-class-properties"]
})
Теперь он должен скомпилироваться со всеми функциями JSX.