React Native无法解析AccessibilityInfo模块问题求助
React Native 解决 AccessibilityInfo 文件不存在的报错
问题情况
我的React Native移动端应用弹出了这个错误,虽然没崩溃还能用,但看着闹心想彻底解决:
None of these files exist: * node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo(.native|.native.jsx|.jsx|.native.js|.js|.native.ts|.ts|.native.tsx|.tsx|.native.cjs|.cjs|.native.json|.json) * node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo/index(.native|.native.jsx|.jsx|.native.js|.js|.native.ts|.ts|.native.tsx|.tsx|.native.cjs|.cjs|.native.json|.json) 12 | 13 | // Components > 14 | import typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/AccessibilityInfo'; | ^ 15 | import typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator'; 16 | import typeof Button from './Libraries/Components/Button'; 17 | import typeof DatePickerIOS from './Libraries/Components/DatePicker/DatePickerIOS';
已经试过删node_modules、Pods重装,也跑了npx react-native start --reset-cache,都没用。
解决步骤
1. 排查版本适配问题
React Native 0.69及以后的版本里,AccessibilityInfo已经被迁移到社区库,要是项目里的依赖还在用旧的导入路径,就会触发这个错误。
- 打开
package.json查看react-native版本,若版本≥0.69,把旧的导入语句替换成:import AccessibilityInfo from '@react-native-community/accessibility-info'; - 要是是第三方库引发的问题,检查该库是否适配当前RN版本,要么升级库版本,要么找替代的同类库。
2. 手动补文件(临时救急方案)
如果暂时没法升级依赖,可手动去node_modules/react-native/Libraries/Components/AccessibilityInfo/目录下创建对应文件:
- 新建
AccessibilityInfo.js,内容写:export { default } from '@react-native-community/accessibility-info'; - 或者创建
index.js,内容同上即可。
注意:这个方法在重新安装依赖后会失效,需要再次操作。
3. 检查metro配置是否拦截路径
打开metro.config.js,查看resolver中的blockList或extraNodeModules配置,确保没有阻止AccessibilityInfo相关路径的解析。
4. 彻底清理构建缓存
除了常规缓存清理,再执行以下步骤:
- iOS端清理构建缓存:
xcodebuild clean -workspace 你的应用名.xcworkspace -scheme 你的应用名 -configuration Debug - Android端清理构建缓存:
cd android && ./gradlew clean - 重新安装依赖:
rm -rf node_modules package-lock.json yarn.lock npm install # 用yarn的话执行yarn install cd ios && pod install && cd ..
内容的提问来源于stack exchange,提问作者Hadi Farhat
相关产品推荐
相关产品推荐

