【问题标题】:React-Native: Cannot update babel to ES7React-Native:无法将 babel 更新到 ES7
【发布时间】:2017-01-14 19:49:48
【问题描述】:

我正在尝试使用新的 ES7 功能 async/await,但据我在 react-native node_modules 中看到的,我没有它们。

我有 react-native 版本 0.31,我刚刚将它更新到 0.32,我可以看到 babel 仍然没有更新 ES7 功能,所以我不能使用 async/await。你知道我怎样才能让它发挥作用吗?

【问题讨论】:

  • 您是否尝试过使用异步代码运行您的应用程序? React native 使用 babel-preset-react-native,其中也包含异步插件。我也在我的应用中使用异步。
  • 是的,然后我收到一个带有意外令牌消息的控制台错误。
  • async/await 不是 ES7 的特性。它将于明年作为 ES2017 的一部分发布。

标签: javascript reactjs react-native ecmascript-2017


【解决方案1】:

你需要安装几个 babel 插件,然后你可以使用 ES7 装饰器并将其保存在 devDependencies 中:

1- babel-plugin-transform-decorators-legacy

npm i babel-plugin-transform-decorators-legacy --save-dev

2- babel-preset-react-native-stage-0

npm i babel-preset-react-native-stage-0 --save-dev

如果不存在,最后在根项目文件夹文件中创建 .babelrc 并添加以下行:

{
 'presets': ['react-native'],
 'plugins': ['transform-decorators-legacy']
}

【讨论】:

    【解决方案2】:

    默认情况下,Babel 不附带 async/await。要使用它们,请安装此插件:

    npm install babel-plugin-syntax-async-functions
    

    并在您的 .babelrc 文件中像这样使用它:

    {
      "plugins": ["syntax-async-functions"]
    }
    

    参考:https://babeljs.io/docs/plugins/syntax-async-functions/

    【讨论】:

    • 现在它确实在 react-native 模块中带有 babel。
    • 那你能改写你的问题吗?问题是你没有安装 babel?
    • 我的错,希望现在更好。
    • 我有 20 个 .babelrc 文件,我不确定哪个是好文件...
    • 你怎么有20个?您的项目的根目录中应该只有一个。如果它不存在,您可以创建它
    猜你喜欢
    • 2018-06-04
    • 2020-02-15
    • 2021-01-23
    • 2019-02-07
    • 2019-03-27
    • 2021-12-21
    • 2022-01-22
    • 2023-01-30
    • 1970-01-01
    相关资源
    最近更新 更多