React-Native:无法将 babel 更新到 ES7
Posted
技术标签:
【中文标题】React-Native:无法将 babel 更新到 ES7【英文标题】:React-Native: Cannot update babel to 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 的一部分发布。 【参考方案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个?您的项目的根目录中应该只有一个。如果它不存在,您可以创建它以上是关于React-Native:无法将 babel 更新到 ES7的主要内容,如果未能解决你的问题,请参考以下文章
React-native,monorepo:无法解析模块@babel/runtime/helpers/interopRequireDefault
如何在 react-native 0.57+ 上为 react-relay(经典)配置 babel