Expo 迁移故障排除与学习总结

🔧 Expo 迁移故障排除与学习总结 📋 文档概述 本文档记录了从 React Native CLI 项目迁移到 Expo Bare Workflow 过程中遇到的所有问题、解决方案和学习要点,供未来参考和复盘使用。 项目背景: 原项目:React Native 0.71.10 + 复杂原生模块(RFID功能) 目标:Expo SDK 50 Bare Workflow 迁移时间:2025年7月23日 🚀 完整迁移步骤与方案 阶段1:项目分析与准备 1.1 原项目结构分析 1 2 3 4 5 6 7 8 9 10 11 12 13 原项目结构 (App/): ├── app/ # 主要应用代码 │ ├── App.tsx # 应用入口 │ ├── components/ # 组件库 │ ├── navigation/ # 导航配置 │ ├── redux/ # 状态管理 │ └── ....

2025-08-05 · 11 min

Expo 迁移检查清单

Expo 迁移检查清单 ✅ 迁移前准备 备份原项目 (App_backup) 安装 Expo CLI (npm install -g @expo/cli) 确保 Node.js 版本 >= 16 阅读完整迁移计划文档 📦 项目结构迁移 创建新的 Expo Bare 项目 复制 app/ 目录到新项目 复制 deps/ 目录 复制配置文件 (tsconfig.json, .eslintrc.js 等) 复制 patches/ 目录 设置正确的路径别名 (@app, @deps) 🔧 配置文件更新 更新 app.json - 添加 Expo 特定配置 配置 eas.json - 构建配置 更新 metro.config.js - 使用 Expo Metro 配置 更新 babel.config.js - 使用 babel-preset-expo 创建 RFID 模块插件 (plugins/rfid-module-plugin.js) 📚 依赖迁移 SQLite 替换 react-native-quick-sqlite → expo-sqlite 更新 app/logger/logsDB....

2025-08-05 · 2 min

Expo 迁移计划

Expo 迁移计划 迁移策略:使用 Expo Bare Workflow 由于项目包含大量自定义原生模块和不兼容的依赖,建议使用 Expo Bare Workflow 进行迁移。 第一阶段:环境准备 1. 安装 Expo CLI 1 npm install -g @expo/cli 2. 创建备份 1 2 # 创建项目备份 cp -r App App_backup 3. 分析不兼容的依赖 需要替换的依赖: react-native-quick-sqlite → expo-sqlite react-native-fs → expo-file-system react-native-device-info → expo-device + expo-application react-native-vision-camera → expo-camera react-native-image-picker → expo-image-picker @react-native-async-storage/async-storage → @react-native-async-storage/async-storage (兼容) react-native-document-picker → expo-document-picker react-native-share → expo-sharing 保持不变的依赖: @react-navigation/* (完全兼容) react-redux, @reduxjs/toolkit (完全兼容) react-native-svg (兼容) react-native-reanimated (兼容) react-native-gesture-handler (兼容) 需要特殊处理的: react-native-paper (需要确保版本兼容) pouchdb* 相关包 (可能需要调整) 自定义RFID模块 (需要保留原生代码) 第二阶段:初始化 Expo Bare Workflow 1....

2025-08-05 · 2 min