在 React 应用中设置 Babel 生成的 EcmaScript 版本

Posted

技术标签:

【中文标题】在 React 应用中设置 Babel 生成的 EcmaScript 版本【英文标题】:Set version of EcmaScript generated by Babel, in react app 【发布时间】:2018-12-21 22:27:16 【问题描述】:

我在我的反应代码中使用了最新的 ES8 功能,例如异步和等待。由于我的 webpack 配置中的错误配置问题,我无法使用源映射,这会减慢调试速度。

一种快速的解决方案是在本地将源代码编译成 ES7 或 ES8,并在最新的 Chrome 中进行测试。如何在.babelrc 中设置它?这是我当前的 .babelrc:


  "presets": [
     "react-app"
  ] 

【问题讨论】:

您应该使用存在的环境并设置目标。 npmjs.com/package/babel-preset-env 您可以将目标设置为特定版本的 Chrome。目标将类似于 Chrome >= 58。预设环境使用浏览器列表。 github.com/browserslist/browserslist#full-list @SimeonSmith 当我将 .babelrc 设置为 "presets": [ ["env", "targets": "chrome": 67 ] ] 时,Babel 无法识别 jsx。所以这还不够 不要删除 react-app 预设。 "presets": [ "react-app", ["env", "targets": "chrome": 67 ] ] 【参考方案1】:

回复here,


  "presets": [
    "react",
    ["env", 
      "targets": 
        "chrome": 67
      
    ]
  ]

截至 2018 年 7 月,上述设置将不支持 spread operator in objects。要启用它,

npm install --save-dev babel-plugin-transform-object-rest-spread

.babelrc中使用如下配置:


  "presets": [
    "react",
    ["env", 
      "targets": 
        "chrome": 67
      
    ]
  ],
  "plugins": ["transform-object-rest-spread"]

【讨论】:

以上是关于在 React 应用中设置 Babel 生成的 EcmaScript 版本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React 和 Webpack 设置 Babel 6 阶段 0

尝试在 monorepo 项目中配置 Babel - 当前未启用“classProperties”。如何在 monorepo 项目中设置 Babel?

在 node.js 中设置我的 babel-watch 时遇到问题

在 React 本机应用程序中设置文本的最大大小

是否可以在 React Native 中设置整个应用程序的背景? [复制]

你如何在 React 中设置文档标题?