突然看到错误"插件/预设文件不允许导出对象,只有函数"在create-react-native-app项目中

lam*_*ter 13 react-native expo

一直致力于通过生成的项目create-react-native-app.已成功使用该项目一段时间了,但现在尝试通过测试应用程序exp start --tunnel,突然看到错误(虽然以前工作)的形式:

[22:08:19] /path/to/node_modules/react-native-scripts/build/bin/crna-entry.js: Plugin/Preset files are not allowed to export objects, only functions. In /path/to/node_modules/babel-preset-expo/index.js
[22:08:19] Failed building JavaScript bundle.
Run Code Online (Sandbox Code Playgroud)

已经看到一些似乎处理问题的帖子(https://github.com/babel/babel/issues/6808Babel Plugin/Preset文件不允许导出对象,只有函数),但我完全是新的反应- 什么都没有完全得到什么bable,所以我很难理解如何将这些帖子应用到我自己的情况.

我的.bablerc文件(因为它似乎与其他帖子相关)是:

{
  "presets": ["babel-preset-expo"],
  "env": {
    "development": {
      "plugins": ["transform-react-jsx-source"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

尝试npm cache clean --force && rm -rf node_modules && rm -f package-lock.json && npm install过没有变化.似乎有帮助的是从react-native@0.56降级到0.55(正如这里所支持的:创建React Native App. - 插件/预设文件不允许导出对象,只有函数),但这似乎没有解决问题直接和更多的解决方法.任何关于应该在这里做什么的建议都会受到赞赏(应该包括哪些其他文件来帮助调试?).


**响应此问题被标记为Create React Native App的潜在副本.- 不允许插件/预设文件导出对象,仅导出函数,

  1. 这个问题实际上是在帖子中引用并解释为什么这个问题被发布尽管另一个的存在被包括在最后一段和
  2. 我后来对这个问题的回答向其他用户解释了为什么降级到0.55可以解决问题(并引用用户可以进一步检查的相关文档),其中(本问题发布时)在其他引用的问题中没有出现(尽管目前,将此问题标记为副本的用户现在在引用的问题中有一个答案,该答案也讨论了0.55降级的原因.

lam*_*ter 18

发现问题是这样的:

在某些时候,必须已经做了一个npm update更新的反应本机到0.56和世博到28.0.0.

纵观反应本地文档(https://facebook.github.io/react-native/docs/upgrading.html#create-react-native-app-projects),反应母语似乎需要安装的版本react-native,react,并且expo这些都是彼此特别兼容的.可以在此处找到哪些软件包相互兼容的矩阵:https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md并说

这些依赖项的每个版本仅与其他两个版本的窄版本范围兼容.

在撰写本文时,该文档最后一次更新于2018年4月27日,因此不清楚哪些版本的react和expo(最近发布的版本为28.0.0)应该与现在的反应本机结合使用@ 0.56.,最近反应,原生版本文件是react-native@0.55(去与react@16.3.1和expo@27.0.0),我认为这是为什么降级到react-native@0.55在这种情况下有帮助(我不知道为什么在react-native@0.56的矩阵中没有文档),我的package.json现在看起来像:

...
"dependencies": {
    "@expo/vector-icons": "^6.3.1",
    "eslint": "^4.19.1",
    "expo": "^27.1.0",
    "prop-types": "^15.6.2",
    "react": "16.3.1",
    "react-native": "^0.55.4",
    "react-native-mail": "^3.0.6",
    "react-native-modal-dropdown": "^0.6.2",
    "react-navigation": "^2.6.2",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "tcomb-form-native": "^0.6.14",
    "uuid": "^3.3.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 哇。因此,我按照npm文档中推荐的分步指南设置了一个项目,安装react-native&expo。旋转虚拟设备,运行expo并等待将代码加载到该设备上后,我收到一个神秘错误,手动搜索将我引到了这里。都是因为我在2个依赖项之间有一个小的补丁不匹配?某处某人以为“会的。发货。” (2认同)

小智 10

今天我也发生了同样的问题.显然,react-native已升级到0.56.0.降级反应本机版本回到0.55.0解决了我的问题

npm install react-native@0.55.0
Run Code Online (Sandbox Code Playgroud)