这个问题在这里已经有答案了:
Babel文件被复制而不被转换
(10个答案)
(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_模块/,
使用:[
{
加载器:“巴别塔加载器”,
选项:{
预设:[“反应”]
}
}
],
}