webpack仅绑定es6语法
我正在写信。我不想把es6编译成es5。作为已经支持的浏览器 看来JS的小型化还不够成熟。但是很好。我只需要捆绑JS文件 我想使用webpack仅绑定es6语法,webpack,ecmascript-6,Webpack,Ecmascript 6,我正在写信。我不想把es6编译成es5。作为已经支持的浏览器 看来JS的小型化还不够成熟。但是很好。我只需要捆绑JS文件 我想使用对象静态方法功能 网页包版本为3.10.0 运行/node\u modules/.bin/webpack-d时出错 Hash: 84a44d953a9cf1e8e1f5 Version: webpack 3.10.0 Time: 257ms Asset Size Chunks Chunk Names .
对象静态方法
功能
网页包版本为3.10.0
运行/node\u modules/.bin/webpack-d
时出错
Hash: 84a44d953a9cf1e8e1f5
Version: webpack 3.10.0
Time: 257ms
Asset Size Chunks Chunk Names
./../public/bundle.js 3.53 kB 0 [emitted] main
[0] ./src/App.jsx 636 bytes {0} [built] [failed] [1 error]
ERROR in ./src/App.jsx
Module build failed: SyntaxError: Unexpected token (7:8)
5 | class App extends React.Component {
6 |
> 7 | state = {
| ^
8 | name: "React"
9 | }
10 |
代码如下:
import React from 'react'
import ReactDOM from 'react-dom'
class App extends React.Component {
state = {
name: "React"
}
render(){
return(
<div>Hello, I'm {this.state.name}</div>
)
}
}
ReactDOM.render(<App />, document.getElementById("main"))
这是否意味着Webpack3.0还不支持es6?还是我错过了什么
谢谢你的时间
更新:
根据@Xlee,webpack.config.js应该是:
...
module: {
loaders: [
{
test: /\.jsx?$/,
loader: 'babel-loader',
query: {
plugins: ['transform-class-properties'],
presets: ['react'],
}
}
]
}
...
您应该在构造函数中传递您的状态:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
name: "React"
}
}
}
我想使用对象静态方法功能
实际上,你想使用的功能不是ES6,它被称为
只需在npm安装中删除一个新的babel插件——保存dev babel插件转换类属性,并相应地更新babelrc(推荐)/webpack(babel loader)
详情如下:谢谢!这帮了大忙。ES7已经发布两年了。类字段是一个建议。感谢您的更正:]
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
name: "React"
}
}
}