用途
upgrading-react-native 用于将 React Native 应用升级到更新的版本。它围绕 React Native 官方社区常用的升级流程组织,帮助开发者按步骤完成从版本检测、模板差异获取到依赖更新、原生配置迁移和升级后验证的完整过程。
主要能力
该技能覆盖以下方面:
- 通过 Upgrade Helper 获取 rn-diff-purge 模板差异(template diffs)。
- 更新 package.json 中的依赖。
- 迁移 iOS 和 Android 的原生配置变更。
- 对齐 React 版本,包括 React 19 的升级对齐规则。
- 处理 Expo SDK 升级层(条件性适用)。
- 评估和更新第三方依赖包,进行依赖兼容性检查与迁移规划。
- 执行升级后验证,包括手动或智能体辅助的回归验证。
- 处理 monorepo 与单仓库应用的命令作用域问题。
使用方式
技能以多个参考文档组织,典型升级顺序为:
- 路由:通过 upgrading-react-native.md 选择正确的升级路径。
- 差异:通过 upgrade-helper-core.md 使用 Upgrade Helper 获取规范模板差异。
- 依赖:通过 upgrading-dependencies.md 评估并更新第三方包。
- React:通过 react.md 对齐 React 版本。
- Expo(如适用):通过 expo-sdk-upgrade.md 应用 Expo SDK 层。
- 验证:通过 upgrade-verification.md 运行升级后检查。
快速开始命令用于检测当前版本并获取最新版本:
npm pkg get dependencies.react-native --prefix "$APP_DIR"
npm view react-native dist-tags.latest
示例:从 0.76.9 升级到 0.78.2
- 获取模板差异:
curl -L -f -o /tmp/rn-diff.diff \
"https://raw.githubusercontent.com/react-native-community/rn-diff-purge/diffs/diffs/0.76.9..0.78.2.diff" \
&& echo "Diff downloaded OK" || echo "ERROR: diff not found, check versions"
- 查看变更文件:
grep -n "^diff --git" /tmp/rn-diff.diff
- 更新 package.json、应用原生改动,然后安装并重建:
npm install --prefix "$APP_DIR"
cd "$APP_DIR/ios" && pod install
- 验证:两个平台都必须成功构建:
npx react-native build-android --mode debug --no-packager
xcodebuild -workspace "$APP_DIR/ios/App.xcworkspace" -scheme App -sdk iphonesimulator build
适用场景
在以下情况可参考这些指南:
- 将 React Native 应用迁移到更新版本。
- 核对 Upgrade Helper 带来的原生配置变更。
- 针对破坏性变更验证发布说明。
问题到技能的映射:
- 需要升级 React Native:从 upgrade-helper-core.md 开始。
- 需要依赖风险分类与迁移选项:从 upgrading-dependencies.md 开始。
- 需要 React/React 19 包对齐:从 react.md 开始。
- 需要先进行工作流路由:从 upgrading-react-native.md 开始。
- 需要 Expo SDK 特定步骤:从 expo-sdk-upgrade.md 开始。
- 需要手动或智能体辅助的回归验证:从 upgrade-verification.md 开始。
- 需要仓库/应用命令作用域:从 monorepo-singlerepo-targeting.md 开始。
限制
资料未提供该技能的具体收费、价格、平台支持范围或效果保证等信息,暂未提供。