React Native调试器:“错误:ENOENT:没有这个文件或目录”

15

问题:当我运行远程调试器时,Metro 服务器会提示找不到这个文件。

Error: ENOENT: no such file or directory, open '/home/hery/Workspace/NyTiona/http:/localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.nytiona&modulesOnly=false&runModule=true'
    at Object.openSync (fs.js:498:3)
    at Object.readFileSync (fs.js:394:35)
    at getCodeFrame (/home/hery/Workspace/NyTiona/node_modules/metro/src/Server.js:919:18)
    at Server._symbolicate (/home/hery/Workspace/NyTiona/node_modules/metro/src/Server.js:992:22)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async Server._processRequest (/home/hery/Workspace/NyTiona/node_modules/metro/src/Server.js:403:7) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/home/hery/Workspace/NyTiona/http:/localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.nytiona&modulesOnly=false&runModule=true'
}

注意:无论我是使用USB还是Wi-Fi,这个错误总是出现。

信息:我的React Native信息

    System:
    OS: Linux 5.4 Ubuntu 20.04.3 LTS (Focal Fossa)
    CPU: (4) x64 Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz
    Memory: 1.51 GB / 7.49 GB
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 14.17.2 - /usr/local/bin/node
    Yarn: Not Found
    npm: 6.14.13 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/bin/watchman
  SDKs:
    Android SDK:
      API Levels: 30
      Build Tools: 30.0.2, 30.0.3, 31.0.0
      System Images: android-30 | Google APIs Intel x86 Atom
      Android NDK: Not Found
  IDEs:
    Android Studio: 4.2 AI-202.7660.26.42.7486908
  Languages:
    Java: 1.8.0_292 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.2 => 17.0.2 
    react-native: 0.65.1 => 0.65.1 
  npmGlobalPackages:
    *react-native*: Not Found

感谢

2个回答

6

我遇到了同样的问题,只需要这样做:

npm start -- --reset-cache

解决了我的问题。


1
我进行了测试,但错误仍然存在。 - Hery
你尝试过删除 node_modules,然后再次运行 npm install 吗? - Shoaib Khan
5
还无法运行。我认为错误是由于具有绝对路径的此URL引起的。/home/hery/Workspace/NyTiona/http:/localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.nytiona&modulesOnly=false&runModule=true--因为如果我在浏览器中搜索,http:/localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.nytiona&modulesOnly=false&runModule=true确实存在。 - Hery
如果有另一个项目打开了metro服务器,那么这可能是一个错误。尝试关闭该metro服务器选项卡并重新运行。 - Shoaib Khan
2
@DonBranson 目前还不行。这真的很令人沮丧。 - Hery
显示剩余5条评论

-4

根据Shoaib Khan的回答,我成功地通过打开两个终端来解决了问题,其中一个终端使用以下命令:

npx react-native start "--reset-cache"

在另一个终端中,只需启动 Android:

npx react-native run-android

不要忘记删除 node_modules 目录,然后通过运行 npm install 重新安装它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接