Ответ 1
Прежде всего: если вы используете React v ^ 0.14, вы должны сделать свой код с помощью React-Dom. https://www.npmjs.com/package/react-dom
Во-вторых, это должно решить вашу проблему: babel-loader jsx СинтаксисError: Неожиданный токен
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]",
},
],
},
}
package.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.js
import React from "react";
import Greeting from "./greeting";
React.render(
<Greeting name="World"/>,
document.body
);
Я видел те же самые вопросы после поиска, но ни один из ответов, похоже, не был применим ко мне. При запуске webpack
я получаю следующую ошибку:
ОШИБКА в. /app.js
Ошибка сборки модуля: SyntaxError: путь /to/project/react -webpack-project/app/app.js: Неожиданный токен (5: 2)
React.render(
<Greeting name="World"/>,
document.body
);
Прежде всего: если вы используете React v ^ 0.14, вы должны сделать свой код с помощью React-Dom. https://www.npmjs.com/package/react-dom
Во-вторых, это должно решить вашу проблему: babel-loader jsx СинтаксисError: Неожиданный токен
Вам нужно добавить пресеты к вашему загрузчику babel:
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: "babel-loader",
presets: ['es2015', 'react']
},
В настоящее время я использую React 0.14.3. Решение ReactDOM не работало и не добавляло предустановки Babel в файл webpack.config.js. По сути, эти решения работают только в том случае, если у вас есть один загрузчик, но у меня были как загрузчик, так и обработчик нагрузки.
В чем работа DID заключалась в установке модуля предварительной настройки babel:
npm install babel-preset-react
а затем создайте файл .babelrc в каталоге проекта со следующим:
{
"presets": ['react']
}
Это описано в http://babeljs.io/docs/plugins/preset-react/, как указано Abhinav Singi
Для меня ответ состоял в том, чтобы включить пресеты в блок запроса:
query: {
presets: ['react', 'es2015']
}
это поможет мне решить эту проблему.
создайте новый файл .babelrc
в том же каталоге webpack.config.js. Добавьте это в .babelrc
{
"stage": 2,
"env": {
"development": {
"plugins": [
"react-display-name",
"react-transform"
],
"extra": {
"react-transform": {
"transforms": [{
"transform": "react-transform-hmr",
"imports": ["react"],
"locals": ["module"]
}]
}
}
}
}
}