首页 > 解决方案 > 错误:捆绑失败:TypeError:无法读取未定义的属性“transformFile”,React Native

问题描述

每当我运行 react-native start 时都会收到此错误,但最近在我的节点模块中安装了 firebase-tools 和 stripe 后开始发生此错误,但在此之前它会运行得很好,这也是错误的堆栈跟踪:

::ffff:127.0.0.1 - - [22/Mar/2020:19:59:30 +0000] "GET /index.bundle?platform=android&dev=true&minify=false HTTP/1.1" 500 - "-" "okhttp/3.12.1"
error: bundling failed: TypeError: Cannot read property 'transformFile' of undefined
    at C:\Users\me\Project\node_modules\react-native\node_modules\@react-native-community\cli\node_modules\metro\src\Bundler.js:87:34
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (C:\Users\me\Project\node_modules\react-native\node_modules\@react-native-community\cli\node_modules\metro\src\Bundler.js:14:24)
    at _next (C:\Users\me\Project\node_modules\react-native\node_modules\@react-native-community\cli\node_modules\metro\src\Bundler.js:34:9)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

这是我的 package.json:

{
  "name": "Project",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "card-validator": "6.2.0",
    "firebase-tools": "7.15.1",
    "jetifier": "^1.6.5",
    "prop-types": "15.7.2",
    "react": "^16.13.1",
    "react-art": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-geocode": "0.2.1",
    "react-native": "0.61.5",
    "react-native-country-picker-modal": "1.9.8",
    "react-native-elements": "1.2.7",
    "react-native-firebase": "5.6.0",
    "react-native-geocoding": "0.4.0",
    "react-native-gesture-handler": "1.5.2",
    "react-native-maps": "0.26.1",
    "react-native-paper": "3.2.1",
    "react-native-reanimated": "1.4.0",
    "react-native-restart": "0.0.14",
    "react-native-shadow": "^1.2.2",
    "react-native-svg": "12.0.3",
    "react-native-vector-icons": "6.6.0",
    "react-native-web": "^0.9.13",
    "react-navigation": "4.0.10",
    "react-navigation-drawer": "2.3.3",
    "react-navigation-stack": "1.10.3",
    "stripe": "^8.33.0",
    "tipsi-stripe": "7.5.1",
    "typescript": "^3.8.3"
  },
  "devDependencies": {
    "@babel/core": "7.7.4",
    "@babel/runtime": "7.7.4",
    "@react-native-community/eslint-config": "0.0.5",
    "babel-jest": "24.9.0",
    "eslint": "^5.0.0",
    "jest": "24.9.0",
    "metro-react-native-babel-preset": "0.56.3",
    "react-test-renderer": "16.9.0"
  },
  "jest": {
    "preset": "react-native"
  }
}

我也很清楚另一个在 StackOverflow 上存在相同问题的问题,但该问题的解决方案对我不起作用,因为当我运行 react-native start 时 npm 忽略了它,因为这些模块已被弃用,我仍然得到相同错误

标签: javascriptfirebasereact-nativeeslint

解决方案


将 NodeJS 降级到 LTS 版本总是有帮助的。我在尝试使用 NodeJS^17 时遇到了同样的问题,但是当我将其降级到 NodeJS^14 并重新安装 node_modules 时,一切都已修复。


推荐阅读