当我使用babel观看jsx文件时。但是存在语法错误。
在此之前,我使用react-tools观看,一切都很好。
SyntaxError: assets/js/chat/chat.jsx: Unexpected token (258:16)
256 | if (this.props.isOpen) {
257 | return (
> 258 | <div className="modal-overlay">
| ^
259 | <ReactCSSTransitionGroup transitionName={this.props.transitionName}>
260 | <div className="chat-modal">
261 | {this.props.children}
以下是我的代码。
var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
var Modal = React.createClass({
render: function() {
if (this.props.isOpen) {
return (
<div className="modal-overlay">
<ReactCSSTransitionGroup transitionName={this.props.transitionName}>
<div className="chat-modal">
{this.props.children}
</div>
</ReactCSSTransitionGroup>
</div>
)
} else {
return <div className="modal-overlay"><ReactCSSTransitionGroup transitionName={this.props.transitionName}/></div>
}
}
});
答案 0 :(得分:4)
命令:
babel --watch assets/js/ --out-dir dist/js/ --presets react
或package.json:
{
"name": "myweb",
"version": "1.0.0",
"babel": {
"presets": ["react"]
}
}
答案 1 :(得分:3)
前几天我遇到了类似的问题。看来babel现在需要一些额外的插件来处理反应。
请参阅此SO问题的答案:babel-loader jsx SyntaxError: Unexpected token
答案 2 :(得分:1)
你有哪个版本的babel?如果升级到6,则必须添加反应预设...
{
test: /\.js$/,
exclude: /node_modules/,
loader: "babel",
query:
{
presets:['react', 'es2015', 'stage-0']
}
}