React Native项目运行run-android报错,提示bundling failed,缺少'fs'等包怎么办?

新手上路,请多包涵

问题描述

react native 项目,做到一半昨天突然无法成功运行run-android了,提示包‘assert’缺失。
一通搜索、回退、重装等,仍然没有找到问题的原因。
网上搜索普遍说rm -rf node_modules && npm install
还有 watchman watch-del-all。都尝试过了。
今天我就想,不是缺少assert嘛,我npm install assert,打算缺多少我就人工安多少。
结果又挨个提示缺少 path、console、hmacsha1 这几个,悉数安装后,现在提示缺少 fs ,这次运行了npm install fs,但还是报。

问题是这几个包应该是环境内置的吧?他们怎么会缺少呢?
如果真是我乱操作弄丢了,怎么重新安装回来呢?

我的package.json

其中assert、console、hmacsha1、path是我人工安装的。。

{
  "name": "RNC",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "assert": "^2.0.0",
    "console": "^0.7.2",
    "hmacsha1": "^1.0.0",
    "path": "^0.12.7",
    "react": "16.8.3",
    "react-native": "0.59.8",
    "react-native-gesture-handler": "^1.3.0",
    "react-navigation": "^3.11.1"
  },
  "devDependencies": {
    "@babel/core": "^7.5.5",
    "@babel/runtime": "^7.5.5",
    "babel-jest": "^24.8.0",
    "jest": "^24.8.0",
    "metro-react-native-babel-preset": "^0.55.0",
    "react-test-renderer": "16.8.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

Metro bundler中报错信息如下

 DELTA  [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓░░░░░ 70.4% (621/740)::ffff:127.0.0.1 - - [22/Jul/2019:15:05:17 +0000] "GET /index.delta?platform=android&dev=true&minify=false HTTP/1.1" 500 - "-" "okhttp/3.12.1"
error: bundling failed: Error: While trying to resolve module `fs` from file `/Users/shiwen/Documents/project/RNC/node_modules/graceful-fs/graceful-fs.js`, the package `/Users/shiwen/Documents/project/RNC/node_modules/fs/package.json` was successfully found. However, this package itself specifies a `main` module field that could not be resolved (`/Users/shiwen/Documents/project/RNC/node_modules/fs/index.js`. Indeed, none of these files exist:

  * `/Users/shiwen/Documents/project/RNC/node_modules/fs/index.js(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)`
  * `/Users/shiwen/Documents/project/RNC/node_modules/fs/index.js/index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)`
    at ResolutionRequest.resolveDependency (/Users/shiwen/Documents/project/RNC/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:65:15)
    at DependencyGraph.resolveDependency (/Users/shiwen/Documents/project/RNC/node_modules/metro/src/node-haste/DependencyGraph.js:283:16)
    at Object.resolve (/Users/shiwen/Documents/project/RNC/node_modules/metro/src/lib/transformHelpers.js:261:42)
    at dependencies.map.result (/Users/shiwen/Documents/project/RNC/node_modules/metro/src/DeltaBundler/traverseDependencies.js:399:31)
    at Array.map (<anonymous>)
    at resolveDependencies (/Users/shiwen/Documents/project/RNC/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:18)
    at /Users/shiwen/Documents/project/RNC/node_modules/metro/src/DeltaBundler/traverseDependencies.js:269:33
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/Users/shiwen/Documents/project/RNC/node_modules/metro/src/DeltaBundler/traverseDependencies.js:87:24)
    at _next (/Users/shiwen/Documents/project/RNC/node_modules/metro/src/DeltaBundler/traverseDependencies.js:107:9)
 DELTA  [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓░░░░░ 70.4% (621/740), failed.
阅读 4.4k
2 个回答
✓ 已被采纳新手上路,请多包涵

我后来找到问题了,原来是代码里多写了一个我没用的东西。
就是这一条,导入了一个不知道是什么的东西。它有问题!
clipboard.png
我用的vscode,稍微输入几个字母他会智能提示的,这个时候我点一下回车它就真导入了。我居然没发现。
争取警惕一下吧,不要让他自己乱导入包。。由于没有频繁提交git,所以这个实在没发现,查了好几天原因。
clipboard.png
至于这个@jest为啥不行,貌似跟typescript有关。

新手上路,请多包涵

哥我遇见和你一样的问题....你怎么解决的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题