Babel loader error: rest/spread operator not understood
Babel loader error: rest/spread operator not understood
当我尝试 运行 我的 webpack 包时,我得到这个控制台错误:
BabelLoaderError: SyntaxError: Unexpected token (113:19)
111 |
112 | const render = () => ReactDOM.render(
> 113 | <TodoApp todos={...store.getState()}/>,
| ^
114 | document.getElementById("root")
115 | )
116 |
所以扩展运算符语法不理解。但是,我已经安装了 babel-stage-2 预设,我在 webpack.config.js
的加载器中包含了它,如下所示:
module: {
loaders: [
{
test: path.join(__dirname, 'public'),
loader: ['babel-loader'],
query: {
presets: debug ? ['react', 'es2015', 'react-hmre', 'stage-2'] : ['react', 'es2015', 'stage-2']
}
}
]
}
我还尝试安装 babel-plugin-transform-object-rest-spread
并添加到 .babelrc
:
{
"plugins": ["transform-object-rest-spread"]
}
仍然收到同样的错误。
感谢任何帮助!
调用 {...store.getState()}
而不是 todos={...store.getState()}
我在一个 Vue 项目中遇到了类似的问题。
我已添加:
{
"presets": [
["es2015", {"modules": false}],
["stage-2"]
],
"plugins": ["transform-object-rest-spread"]
}
在 .babelrc
中尝试了很多东西,但似乎没有任何效果。
如注意事项部分 preset-env plugin 中所述,您应该至少拥有 v6.19.0,我的是 v6.23.0,但仍然无法正常工作。
编辑: 我找到了 Answer here.
我的解决方案
/*
* additional javascript loader for es6 code in node_modules that have to be transpiled also
*/
{
test: /\.jsx?$/,
include: [
NODE_MODULES + '/vuetify/src'
],
use: [
{
loader: 'babel-loader',
options: Config.babel()
}
]
}
当我尝试 运行 我的 webpack 包时,我得到这个控制台错误:
BabelLoaderError: SyntaxError: Unexpected token (113:19)
111 |
112 | const render = () => ReactDOM.render(
> 113 | <TodoApp todos={...store.getState()}/>,
| ^
114 | document.getElementById("root")
115 | )
116 |
所以扩展运算符语法不理解。但是,我已经安装了 babel-stage-2 预设,我在 webpack.config.js
的加载器中包含了它,如下所示:
module: {
loaders: [
{
test: path.join(__dirname, 'public'),
loader: ['babel-loader'],
query: {
presets: debug ? ['react', 'es2015', 'react-hmre', 'stage-2'] : ['react', 'es2015', 'stage-2']
}
}
]
}
我还尝试安装 babel-plugin-transform-object-rest-spread
并添加到 .babelrc
:
{
"plugins": ["transform-object-rest-spread"]
}
仍然收到同样的错误。
感谢任何帮助!
调用 {...store.getState()}
而不是 todos={...store.getState()}
我在一个 Vue 项目中遇到了类似的问题。
我已添加:
{
"presets": [
["es2015", {"modules": false}],
["stage-2"]
],
"plugins": ["transform-object-rest-spread"]
}
在 .babelrc
中尝试了很多东西,但似乎没有任何效果。
如注意事项部分 preset-env plugin 中所述,您应该至少拥有 v6.19.0,我的是 v6.23.0,但仍然无法正常工作。
编辑: 我找到了 Answer here.
我的解决方案
/*
* additional javascript loader for es6 code in node_modules that have to be transpiled also
*/
{
test: /\.jsx?$/,
include: [
NODE_MODULES + '/vuetify/src'
],
use: [
{
loader: 'babel-loader',
options: Config.babel()
}
]
}