@react-navigation/bottom-tabs 5.x 导致的启动错误

Launch error caused by @react-navigation/bottom-tabs 5.x

从之前的 5.x 升级到最新的 @react-navigation/stack 5.2.10 之后。 App(react native 0.61.5)启动报错:

error: bundling failed: SyntaxError: C:\D\code\js\emps_fe615\node_modules\@react-navigation\bottom-tabs\src\index.tsx: Unexpected token (15:12)

  13 |  * Types
  14 |  */
> 15 | export type {
     |             ^
  16 |   BottomTabNavigationOptions,
  17 |   BottomTabNavigationProp,
  18 |   BottomTabBarProps,
 BUNDLE  [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓░░░░ 75.5% (802/923)::ffff:127.0.0.1 - - [11/Apr/2020:02:14:43 +0000] "GET /index.bundle?platform=android&dev=true&minify=false HTTP/1.1" 500 - "-" "okhttp/3.12.1"
 BUNDLE  [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓░░░░ 75.5% (802/923), failed.

这里是package.json的部分:

"@react-navigation/bottom-tabs": "^5.2.6",
"@react-navigation/native": "^5.1.5",
"@react-navigation/stack": "^5.2.10"
"react-native-gesture-handler": "^1.6.1",
"react-native-screens": "^2.4.0",

有人看到升级后的错误吗?有解决办法吗?

如果没有任何效果,如果您使用的是 yarn,您可以尝试一下:

  1. rm -rf node_modules yarn.lock
  2. yarn cache clean
  3. yarn

如果 NPM:

  1. rm -rf node_modules package-lock.lock
  2. npm cache clean --force
  3. npm install

[奖励] 启动 React Native 清理缓存:

原版 RN:npx react-native start --reset-cache

博览会:expo start -c

以下步骤将解决问题。

npm install @babel/core@^7.9.0
npm install @babel/runtime@^7.9.2
npm cache clean --force
expo start -c

你的@react-navigation/native版本是5.1.5 您的导航器(堆栈和 bottom-tabs)版本与 @react-navigation/native 版本不同。 这就是出现此问题的原因。确保这些包具有相同的版本。

如果 expo-cli 是全局安装的,这往往会发生。如果是,试试这个:

yarn global add @babel/core

或其 npm 等价物

npm install -g @babel/core

但是,我注意到最好不要有任何全局包,因此您必须 yarn global remove expo-cli 并将其添加到您的项目中 (yarn add expo-cli)。