@react-navigation/native 升级到 V5 SyntaxError
@react-navigation/native upgrade to V5 SyntaxError
我在将我的 react-navigation 从 v3 升级到 v5 时遇到了一些问题。我将 运行 保留在这个错误中,起初我认为这是一个错误,但我没有在网上找到任何其他关于它的投诉。为了 100% 确定旧版本不会引起任何问题,我完全卸载了所有 react-navigation 并从头开始使用 v5。我仍然收到索引文件错误。它似乎不理解打字稿......这是一个已知的错误吗?关于安装 Typescript 的文档中没有我需要采取的其他步骤吗?
更新:
./types 文件编译不正确...它似乎无法识别 NavigationState 或 ActionHelpers...这是一个错误吗?有人以前看过这个吗?
更新 2
我在 RN V0.59 运行,所以我认为可能存在依赖性问题。我正在升级到 V0.62.2 并查看问题是否仍然存在
https://reactnavigation.org/docs/getting-started
SyntaxError:
/Users/myusername/myprojectname/node_modules/@react-navigation/stack/src/index.tsx:
Unexpected token (51:12)
49 | * Types 50 | */
51 | export type {
| ^ 52 | StackNavigationOptions, 53 | StackNavigationProp, 54 | StackHeaderProps,
希望对您有所帮助!
删除你的yarn.lock或package-json.lock文件和运行yarn/npm 安装.
然后尝试使用 npx react-native start --reset-cache 或 expo start -c
清除缓存
参考资料
如果您使用 TypeScript,请执行以下操作:
- 删除
node_modules
和锁定文件(yarn.lock
或package.lock
)
- 将 TypeScript 升级到最新版本,即 3.8.3。
- 运行
yarn cache clean
或 npm cache clean
.
- 运行
yarn
或 npm install
.
- 运行
yarn react-native start --reset-cache
.
- 运行
yarn react-native run-android
.
如果您不这样做,请按照以下步骤操作:
- 运行
yarn add --dev @babel/core@^7.9.0 @babel/runtime@^7.9.0
.
- 从
emulator/phone
中卸载 apk。
- 运行
yarn react-native start --reset-cache
.
- 运行
yarn react-native run-android
.
如果这不起作用,请转至 android/
,然后 运行 gradlew clean
或 ./gradlew clean
,删除您的 apk phone 并重新运行 yarn react-native run-android
.
对于无法通过删除 node_modules
和诸如此类的东西使其正常工作的任何人:
将 @babel/core
添加为 全局 依赖项(yarn global add @babel/core
/ npm install -g @babel/core
),因为全局安装的 expo-cli
不会由于某些原因无法识别基于项目的 babel 安装。
我在将我的 react-navigation 从 v3 升级到 v5 时遇到了一些问题。我将 运行 保留在这个错误中,起初我认为这是一个错误,但我没有在网上找到任何其他关于它的投诉。为了 100% 确定旧版本不会引起任何问题,我完全卸载了所有 react-navigation 并从头开始使用 v5。我仍然收到索引文件错误。它似乎不理解打字稿......这是一个已知的错误吗?关于安装 Typescript 的文档中没有我需要采取的其他步骤吗?
更新: ./types 文件编译不正确...它似乎无法识别 NavigationState 或 ActionHelpers...这是一个错误吗?有人以前看过这个吗?
更新 2 我在 RN V0.59 运行,所以我认为可能存在依赖性问题。我正在升级到 V0.62.2 并查看问题是否仍然存在
https://reactnavigation.org/docs/getting-started
SyntaxError: /Users/myusername/myprojectname/node_modules/@react-navigation/stack/src/index.tsx: Unexpected token (51:12)
49 | * Types 50 | */
51 | export type { | ^ 52 | StackNavigationOptions, 53 | StackNavigationProp, 54 | StackHeaderProps,
希望对您有所帮助!
删除你的yarn.lock或package-json.lock文件和运行yarn/npm 安装.
然后尝试使用 npx react-native start --reset-cache 或 expo start -c
清除缓存参考资料
如果您使用 TypeScript,请执行以下操作:
- 删除
node_modules
和锁定文件(yarn.lock
或package.lock
) - 将 TypeScript 升级到最新版本,即 3.8.3。
- 运行
yarn cache clean
或npm cache clean
. - 运行
yarn
或npm install
. - 运行
yarn react-native start --reset-cache
. - 运行
yarn react-native run-android
.
如果您不这样做,请按照以下步骤操作:
- 运行
yarn add --dev @babel/core@^7.9.0 @babel/runtime@^7.9.0
. - 从
emulator/phone
中卸载 apk。 - 运行
yarn react-native start --reset-cache
. - 运行
yarn react-native run-android
.
如果这不起作用,请转至 android/
,然后 运行 gradlew clean
或 ./gradlew clean
,删除您的 apk phone 并重新运行 yarn react-native run-android
.
对于无法通过删除 node_modules
和诸如此类的东西使其正常工作的任何人:
将 @babel/core
添加为 全局 依赖项(yarn global add @babel/core
/ npm install -g @babel/core
),因为全局安装的 expo-cli
不会由于某些原因无法识别基于项目的 babel 安装。