babel loader jsx语法错误:意外标记[重复]

这个问题在这里已经有答案了
Babel文件被复制而不被转换

(10个答案)

四年前关闭的

我是React+网页包的初学者

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

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

以下是我的依赖项:

“依赖性”:{
“巴别塔核心”:“^6.0.14”,
“巴别塔加载器”:“^6.0.0”,
“网页包”:“^1.12.2”,
网页包开发服务器“^1.12.1”
},
“依赖项”:{
“反应”:“^0.14.1”
}

这是我的webpack.config.js

var path=require('path');
module.exports={
条目:['webpack/hot/dev server',path.resolve(\uu dirname,'app/main.js'),
输出:{
path:path.resolve(uu dirname,'build'),
文件名:“bundle.js”
},
模块:{
装载机:[
{test://\.js$/,exclude:/node\u modules/,loader:“babel loader”}
]
}
};

这是我的app/main.js

var React=require(“React”);
React.render(<h1>hello world</h1>,document.getElementById(“应用”);

这是错误信息

./app/main.js中的

错误
模块生成失败:语法错误:~/**/app/main.js:意外令牌(2:13)
1 | var React=要求(“React”);
&燃气轮机;2 | React.render(<h1>hello world</h1>,document.getElementById(“应用”);
|              ^
在Parser.pp.raise(~/**/node\u modules/babylon/lib/Parser/location.js:24:13)

谢谢你们

添加“巴别塔预设反应”

npm安装巴别塔预设系统

并将“预设”选项添加到webpack.config.js中的babel loader

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

下面是一个示例webpack.config.js:

{
test://\.jsx?$/,//匹配.js和.jsx文件
排除:/node_模块/,
加载器:“巴贝尔”,
查询:
{
预设:[“反应”]
}
}

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

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

2018年更新

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

npm安装巴别塔装载机巴别塔预设

然后在网页包配置中(作为module.exports对象中module.rules数组中的条目)

{
测试:/\.jsx?$/,,
排除:/node_模块/,
使用:[
{
加载器:“巴别塔加载器”,
选项:{
预设:[“反应”]
}
}
],
}

发表评论