【问题标题】:Babel can't recognize ... in syntax. (Redux)Babel 在语法中无法识别 ...。 (还原)
【发布时间】:2018-03-13 20:48:19
【问题描述】:

Babel 无法在我的 Redux reducer 中转换 ...。使用 Babel 运行 Webpack 时,我不断收到错误消息:

ERROR in ./src/reducers/api_reducer.js
Module build failed: SyntaxError: Unexpected token (18:15)

  16 |   switch(action.type) {
  17 |     case FETCH_MESSAGE:
> 18 |       return { ...state, message: action.payload };
     |                ^
  19 |     case FETCH_EVENTS:
  20 |       return { ...state, eventList: action.payload };
  21 |     case CREATE_EVENT:

这些是我安装的依赖项:

 "devDependencies": {
    "babel-core": "^6.17.0",
    "babel-loader": "^6.2.0",
    "babel-preset-env": "^1.1.4",
    "babel-preset-react": "^6.16.0",
    "css-loader": "^0.26.1",
    "file-loader": "^1.1.4",
    "html-webpack-plugin": "^2.30.1",
    "image-webpack-loader": "^3.4.2",
    "rimraf": "^2.6.2",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.9",
    "webpack": "2.2.0-rc.0",
    "webpack-dev-server": "^2.2.0-rc.0"
  }

我的 .babelrc 是这样的:

{
  "presets": ["babel-preset-env", "react"]
}

谁能告诉我为什么...不能被转译?你是如何解决这个问题的? -非常感谢!

【问题讨论】:

    标签: reactjs webpack redux babeljs webpack-2


    【解决方案1】:

    对象休息/传播目前是第 3 阶段的提案,因此它不包含在 babel-preset-env 中。您可以:

    • 使用.babelrc 仅包含此特定转换:

      { “插件”:[“变换对象休息传播”] }

    • 包括所有第 3 阶段的提案:

      { “预设”:[“env”,“react”,“stage-3”] }

    【讨论】:

    • @str 我的意思是,虽然品味不佳,但很难说这个答案并不比你的或 CD 的更完整......
    • @Aymeric Bouzy aybbyk 我输入了你告诉我的内容,现在我得到了一种新的语法错误。你知道这可能是什么原因吗? stackoverflow.com/questions/46532922/…
    • @str :我开始写我的答案,只有在我发表时才看到你的答案。因为我觉得我的更完整,所以我没有删除它。
    【解决方案2】:

    使用transform-object-rest-spread babel 的插件。

    转换对象解构赋值的剩余属性和对象字面量的扩展属性

    【讨论】:

      【解决方案3】:

      您正在使用object spread operator,它目前是第 3 阶段的功能。 babel-preset-env 不支持它们。您需要添加babel-preset-stage-3

      【讨论】:

        猜你喜欢
        • 2016-02-02
        • 2018-03-18
        • 1970-01-01
        • 2018-11-21
        • 1970-01-01
        • 2014-09-29
        • 2019-10-22
        • 2019-09-23
        • 1970-01-01
        相关资源
        最近更新 更多