首页 > 解决方案 > 构建 JS 包时的 Expo 启动错误:在 HMRClient.js 中进行类型转换

问题描述

问题 :

我最近在我的 expo 项目(React Native)中遇到了一个阻塞问题。

类型转换表达式应该用括号括起来

我检查了我的代码,并没有注意到任何会导致此问题的更改。

当我输入说明以使用 MetroBundler 启动世博会构建(shell)时,它总是会引发错误。

  1. expo start

  2. Expo DevTools is running at http://localhost:19002 Opening DevTools in the browser... (press shift-d to disable) Starting Metro Bundler

  3. 错误

Failed building JavaScript bundle.
SyntaxError: C:\xamppN\htdocs\mobile-new\node_modules\react-native\Libraries\Utilities\HMRClient.js: The type cast expression is expected to be wrapped with parenthesis (284:31)

  282 | function flushEarlyLogs(client) {
  283 |   try {
> 284 |     pendingLogs.forEach(([level: LogLevel, data: Array<mixed>]) => {
      |                                ^
  285 |       HMRClient.log(level, data);
  286 |     });
  287 |   } finally {

类型转换表达式应该用括号括起来

我试过了 :

更多信息:

包.json:

 "dependencies": {
    "antd": "^3.23.2",
    "expo": "^39.0.0", 
    "expo-asset": "~8.2.0",
    "expo-av": "~8.6.0",
    "expo-barcode-scanner": "~9.0.0",
    "expo-cli": "^3.27.14",
    "expo-constants": "~9.2.0",
    "expo-localization": "~9.0.0",
    "expo-permissions": "~9.3.0",
    "expo-secure-store": "~9.2.0",
    "expo-updates": "~0.3.3",
    "expokit": "31.0.2",
    "moment": "^2.22.2",
    "node-forge": "^0.10.0",
    "npm": "^6.14.8",
    "react": "16.13.1",
    "react-datetime-inputs": "^0.0.6",
    "react-mixin": "^2.0.2",
    "react-native": "https://github.com/expo/react-native/archive/sdk-39.0.0.tar.gz",
    "react-native-create-bridge": "^2.0.1",
    "react-native-dialog": "^5.6.0",
    "react-native-dialog-input": "^1.0.7",
    "react-native-gesture-handler": "~1.7.0",
    "react-native-imei": "^0.1.2",
    "react-native-modal-datetime-picker": "^7.5.0",
    "react-native-pay-password": "^0.0.2",
    "react-native-reanimated": "~1.13.0",
    "react-native-sentry": "^0.43.2",
    "react-native-sha1": "^1.2.3",
    "react-navigation": "^4.0.6",
    "react-navigation-drawer": "^2.2.2",
    "react-select": "^3.0.4",
    "react-timer-mixin": "^0.13.4",
    "sentry-expo": "~2.0.0",
    "yarn": "^1.16.0"

标签: reactjsreact-nativenpmexpoyarnpkg

解决方案


那是之间的冲突"yarn": "^1.16.0" and "npm": "^6.14.8"

您应该选择一个包管理器并避免交叉依赖


推荐阅读