微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Metro bundler:错误:EISDIR:对目录的非法操作,读取

如何解决Metro bundler:错误:EISDIR:对目录的非法操作,读取

当我重新加载我的包时,这个异常没有被捕获:

Error: EISDIR: illegal operation on a directory,read
    at Object.readSync (fs.js:592:3)
    at tryReadSync (fs.js:366:20)
    at Object.readFileSync (fs.js:403:19)
    at UnabletoResolveError.buildCodeFrameMessage (/home/brady/obs-websocket-app/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:347:17)
    at new UnabletoResolveError (/home/brady/obs-websocket-app/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:333:35)
    at ModuleResolver.resolveDependency (/home/brady/obs-websocket-app/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:211:15)
    at DependencyGraph.resolveDependency (/home/brady/obs-websocket-app/node_modules/metro/src/node-haste/DependencyGraph.js:413:43)
    at /home/brady/obs-websocket-app/node_modules/metro/src/lib/transformHelpers.js:317:42
    at /home/brady/obs-websocket-app/node_modules/metro/src/Server.js:1471:14
    at Generator.next (<anonymous>)

我的package.json

{
  "main": "src/index.js","scripts": {
    "android": "react-native run-android","ios": "react-native run-ios","web": "expo start --web","start": "react-native start","test": "jest"
  },"dependencies": {
    "@types/node": "^14.14.35","events": "^3.3.0","expo": "~40.0.0","expo-splash-screen": "~0.8.0","expo-updates": "~0.4.0","obs-websocket-js": "^4.0.2","react": "16.13.1","react-dom": "16.13.1","react-native": "~0.64.0","react-native-elements": "^3.3.2","react-native-gesture-handler": "~1.8.0","react-native-reanimated": "~1.13.0","react-native-screens": "~2.15.0","react-native-unimodules": "~0.12.0","react-native-web": "~0.13.12"
  },"devDependencies": {
    "@babel/core": "~7.9.0","@types/react": "~16.9.35","@types/react-dom": "~16.9.8","@types/react-native": "~0.63.2","babel-preset-expo": "~8.3.0","jest-expo": "~40.0.0","typescript": "~4.0.0"
  },"jest": {
    "preset": "react-native"
  },"private": true
}

解决方法

替换`MainApplication.java中的这段代码

        @Override
        protected String getJSMainModuleName() {
          return "src/index"; <---add this
        }
,

显然,将 index.js 移至 src/index.js 存在问题。我将它移回项目根目录,现在工作正常。

,

对于IOS

// packages/myapp/ios/myapp/AppDelegate.m:56
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"src/index" fallbackResource:nil];
,

通过删除和创建新的android模拟器解决...

,

如果您对本机模块使用 create-react-native-library 并收到此错误。执行以下操作:

  1. cd example
  2. npx react-native start
  3. 在 rootDir 中,yarn example run

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?