webpack如何配置...rest这种语法

const PrivateRoute = ({component: Component, ...rest}) => (
}
就在...rest报错。
我的bablerc配置如下:
{
"presets": [

"es2015",
"react"

],
"plugins": [

[
  "import",
  {
    "libraryName": "antd",
    "style": true
  }
]

],
"sourceMaps": true
}
webpack的js,jsx配置如下:
{

test: /(\.jsx|\.js)$/,
exclude: /node_modules/,
use: {
    loader: 'babel-loader',
    options: {
        presets: ['es2015', 'react']
    }
}

},

阅读 3.5k
3 个回答

rest需要是具体的对象。可别和函数参数的rest用法混在一起了。

这个还基本明白,我刚才测试了下这个代码。对象就报错,函数不会。我就是感到很奇怪
let obj = {name: "zhangshan", age: 10};
let obj2 = {aaa: 20, ...obj};
console.log(obj2);

在谷歌都能正常运行,在我配置的webpack里面就报错

[WDS] Hot Module Replacement enabled.
client?2f86:154 [WDS] Errors while compiling. Reload prevented.
msgErrors @ client?2f86:154
client?2f86:157 ./src/main.js
Module build failed: SyntaxError: Unexpected token (5:21)

3 |
4 | let obj = {name: "zhangshan", age: 10};

5 | let obj2 = {aaa: 20, ...obj};

|                      ^

6 | console.log(obj2)

@ multi ./node_modules/_webpack-dev-server@2.9.3@webpack-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

babelrc

"presets": [
    [
      "env",
      {
        "modules": false,
        "targets": {
          "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
        }
      }
    ],
    react,
    "stage-2"
  ],

重点是这个 stage-2 2以上都行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进