Reagieren, babel, webpack nicht analysieren jsx-code
webpack.config.js
module.exports = {
context: __dirname + "/app",
entry: {
javascript: "./app.js",
html: "./index.html",
},
resolve: {
extensions: ['', '.js', '.jsx']
},
output: {
filename: "app.js",
path: __dirname + "/dist",
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: "babel-loader",
},
{
test: /\.html$/,
loader: "file?name=[name].[ext]",
},
],
},
}
Paket.json
{
"name": "react-webpack-project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel": "^6.0.15",
"babel-core": "^6.0.20",
"babel-loader": "^6.0.1",
"file-loader": "^0.8.4",
"webpack": "^1.12.2"
},
"dependencies": {
"react": "^0.14.2"
}
}
app/app.js
import React from "react";
import Greeting from "./greeting";
React.render(
<Greeting name="World"/>,
document.body
);
Habe ich gesehen, die genau dieselben Fragen nach der Suche rund um, aber keine der Antworten schien auf mich zu. Ich erhalte die folgende Fehlermeldung beim ausführen webpack
:
FEHLER bei ./app.js
Modul bauen Fehler: SyntaxError: path/to/project/react-webpack-project/app/app.js: Unerwartetes token (5:2)
JS:
React.render(
<Greeting name="World"/>,
document.body
);
Ich bin nicht sicher, warum bin ich immer diese Fehlermeldung immer noch. Ich vermute, es hat etwas zu tun mit meinem webpack.config.js Datei, aber nicht 100% was das problem ist.
- Haben Sie versucht, diese Lösung ? link
- Ich denke, das problem ist, dass Sie mehrere Lader definiert; Kasse unten meine Antwort-ich denke, dass die Verwendung eines .babelrc Datei wird den trick tun!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens: wenn Sie Reagieren, v^0.14, Sie sollte machen Ihren code mit Reagieren-Dom. https://www.npmjs.com/package/react-dom
Zweiten, dies sollte Ihr problem beheben:
babel-loader jsx SyntaxError: Unexpected token
Müssen Sie die Voreinstellungen hinzufügen, um Ihre babel-loader:
http://babeljs.io/docs/plugins/#presets
Ich bin derzeit mit Reagieren 0.14.3. Die ReactDOM Lösung hat nicht funktioniert, noch hat das hinzufügen der babel-Vorgaben in der webpack.config.js. Im Grunde sind diese Lösungen funktionieren scheinbar nur wenn Sie eine single-loader definiert, aber ich hatte das babel-loader sowie das reagieren-hot-loader.
Was funktioniert HAT war die Installation des babel reagieren presets Modul:
erstellen und dann eine .babelrc-Datei in mein Projekt-Verzeichnis mit den folgenden:
Dies ist dokumentiert bei http://babeljs.io/docs/plugins/preset-react/, wie gezeigt, durch Abhinav Singi
Für mich ist die Antwort ging um die presets in der query-block:
dies wird mir helfen, um dadurch gelöst, dass Problem.
neue Datei anlegen
.babelrc
auf gleiche Verzeichnis webpack.config.js. Fügen Sie diese zu.babelrc