如何解决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
并收到此错误。执行以下操作:
cd example
npx react-native start
- 在 rootDir 中,
yarn example run
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。