Ich habe ein sehr grundlegendes Projekt für React with Webpack enabled ES6. Dies ist, was Datei meine Webpack Config wie folgt aussieht:Webpack mit ES6-Presets, die die ES6-Syntax nicht verstehen
module.exports = {
entry: './main.js',
output: {
path: './',
filename: 'index.js',
},
devServer: {
inline: true,
port: 3333,
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}
]
}
};
Ich habe einige Code Reagieren mit einer Komponente deklarierte class
verwenden und dass Komponente hat darin einige Pfeil Funktionen. Wenn ich die Seite ausführen, zeigt der Webpack dev-Server die folgenden Fehler:
ERROR in ./App.js
Module build failed: SyntaxError: C:/Users/Alex/src/todo/App.js: Unexpected token (23:12)
21 | };
22 |
> 23 | handleOpen =() => {
| ^
24 | this.setState({open: true});
25 | };
26 |
Es scheint, dass auf der Babel Webseite aus der Lektüre, die voreingestellte 'es2015'
sollten genug sein. Fehle ich etwas?
Das hat funktioniert, danke! Aber ich verstehe es nicht; Wenn ich [diese Seite für die ES2015-Voreinstellung] (http://babeljs.io/docs/plugins/preset-es2015/) anschaue, sind die Pfeilfunktionen dort. Was vermisse ich? –
Ich habe gerade die Antwort einige Sekunden, nachdem Sie upvoted/kommentiert aktualisiert, ich denke, das sollte erklären, was vor sich geht. Es ist nicht die einfache Pfeilfunktion, sondern eine Klasse, die korrekt kompiliert wird. Oder Sie können den [Instanz-Felddeklarationsprozess] (https://github.com/jeffmo/es-class-fields-and-static-properties#instance-field-declaration-process) überprüfen. –