gpt4 book ai didi

javascript - babel-loader jsx 语法错误 : Unexpected token

转载 作者:行者123 更新时间:2023-11-28 05:41:09 29 4
gpt4 key购买 nike

我是 React + Webpack 的初学者。

我在我的 hello world Web 应用程序中发现了一个奇怪的错误。

我在webpack中使用babel-loader来帮助我将jsx转换为js,但是babel似乎无法理解jsx语法。

这是我的依赖项:

"devDependencies": {
"babel-core": "^6.0.14",
"babel-loader": "^6.0.0",
"webpack": "^1.12.2",
"webpack-dev-server": "^1.12.1"
},
"dependencies": {
"react": "^0.14.1"
}

这是我的webpack.config.js

var path = require('path');
module.exports = {
entry: ['webpack/hot/dev-server',path.resolve(__dirname, 'app/main.js')],
output: {
path: path.resolve(__dirname, 'build'),
filename: 'bundle.js'
},
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"}
]
}
};

这是我的app/main.js

var React = require("react");
React.render(<h1>hello world</h1>,document.getElementById("app"));

这是错误消息

ERROR in ./app/main.js
Module build failed: SyntaxError: ~/**/app/main.js: Unexpected token (2:13)
1 | var React = require("react");
> 2 | React.render(<h1>hello world</h1>,document.getElementById("app"));
| ^
at Parser.pp.raise (~/**/node_modules/babylon/lib/parser/location.js:24:13)

谢谢你们。

最佳答案

添加“babel-preset-react”

npm install babel-preset-react

并在 webpack.config.js 中的 babel-loader 中添加“presets”选项

(或者您可以将其添加到您的 .babelrc 或 package.js: http://babeljs.io/docs/usage/babelrc/ )

这是一个示例 webpack.config.js:

{ 
test: /\.jsx?$/, // Match both .js and .jsx files
exclude: /node_modules/,
loader: "babel",
query:
{
presets:['react']
}
}

最近 Babel 6 发布了,有一个重大变化: https://babeljs.io/blog/2015/10/29/6.0.0

如果你使用的是react 0.14,你应该使用ReactDOM.render() (来自 require('react-dom') )而不是 React.render() : https://facebook.github.io/react/blog/#changelog

2018 年更新

Rule.query 已被弃用,取而代之的是 Rule.options。在webpack 4中的用法如下:

npm install babel-loader babel-preset-react

然后在你的 webpack 配置中(作为 module.exports 对象中 module.rules 数组中的一个条目)

{
test: /\.jsx?$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: {
presets: ['react']
}
}
],
}

关于javascript - babel-loader jsx 语法错误 : Unexpected token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38908296/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com