Javascript 使用Babel仅转换jsx
我正在使用Babel和React js。 问题是我不想把es6转换成es5。我想继续使用es6。 我只需要将jsx转换为js。 这是我的宝贝Javascript 使用Babel仅转换jsx,javascript,reactjs,jsx,babeljs,Javascript,Reactjs,Jsx,Babeljs,我正在使用Babel和React js。 问题是我不想把es6转换成es5。我想继续使用es6。 我只需要将jsx转换为js。 这是我的宝贝 { "plugins": ["transform-react-jsx"] } 这是我的代码: import React from "react"; /****** Header *******/ export class Header extends React.Component { onSubmit = (e) => {
{
"plugins": ["transform-react-jsx"]
}
这是我的代码:
import React from "react";
/****** Header *******/
export class Header extends React.Component {
onSubmit = (e) => {
e.preventDefault();
console.log('Submitting');
const errors = this.validate();
if (Object.keys(errors).length === 0) {
this.setState({ loading: true });
fetch(this.props.action, {
method: 'POST',
body: JSON.stringify(this.state.data),
headers: new Headers({
'Content-Type': 'application/json'
}),
credentials: 'same-origin'
}).then(res => res.json())
.catch(error => console.error('Error:', error))
.then(response => console.log('Success:', response));
}
};
render() {
return (
<div>
<a href={this.props.homeUrl}><img src={this.props.logoUrl} /></a>
<div><span>Hello {this.props.userName}</span></div>
<button onclick={this.onSubmit(e).bind(this)}>Click me</button>
</div>
);
}
}
它向我展示了es6代码行的语法错误,所以我认为Babel仍然需要将es6转换为es5
安装“transform class properties”后,会显示另一条错误消息:
SyntaxError: components/Form.js: Unexpected token (55:12)
53 | getFieldValue(e) {
54 | this.setState({
> 55 | ...this.state,
| ^
56 | data: {
57 | ...this.state.data,
58 | [e.target.name]: e.target.value
你知道有什么办法吗?仅将JSX转换为JS
非常感谢您的支持这取决于您使用的浏览器如果该浏览器不支持所有es6功能或某些功能,那么这些错误是令人担忧的您使用的是类属性语法,例如
someVar=()=>{}
jsx插件不会对其进行转换。您需要为所有这些仍然是建议的高级功能添加插件
下面是用于类属性的babel插件:
本质上,它只会转换您提供给它的插件,但浏览器中还不支持类属性,更不用说节点了。支持es6。使用预设。了解巴贝尔更多发布您的jsx代码,它是功能性的还是类组件?我已经更新了我的代码和错误消息。谢谢这里没有浏览器,在我运行babel命令babel命令后,终端上显示的错误消息?你能告诉babel命令和你运行的浏览器感谢3stacks,它在我安装插件后工作。但我也使用了很多es6语法,比如箭头函数、spread等等。我需要安装所有es6->es5转换器插件。这意味着我仍然需要将es6转换为es5
SyntaxError: components/Form.js: Unexpected token (55:12)
53 | getFieldValue(e) {
54 | this.setState({
> 55 | ...this.state,
| ^
56 | data: {
57 | ...this.state.data,
58 | [e.target.name]: e.target.value