【React Native】文件翻譯閱讀紀錄 - 指南 - 升級到新的 React Native 版本

by - 上午9:00

Facebook Open Source React Native


升級到新的 React Native 版本

升級到新版本的 React Native 將使您可以訪問更多 API,視圖,開發人員工具和其他好東西。升級需要花費很少的精力,但我們會盡量讓您輕鬆完成。根據您是使用 create-react-native-app 還是 react-native init 來創建項目,說明略有不同。

創建React Native App項目

將Create React Native App項目升級到新版本的React Native需要更新package.json文件中的react-native,react和expo軟件包版本。請參閱此文檔以了解支持的版本。您還需要在app.json文件中設置正確的sdkVersion。

有關升級項目的最新信息,請參閱 CRNA user guide 

使用本機代碼構建的項目

基於Git升級

react-native-git-upgrade 模塊提供了一步操作來升級源文件,並且衝突最少。在引擎蓋下,它分為兩個階段:
  • 首先,它計算舊模板文件和新模板文件之間的Git補丁
  • 然後,補丁應用於用戶的源。
重要信息:您不必安裝新版本的react-native軟件包,它將自動安裝。

1. 安裝 Git

雖然您的項目不必由Git版本控制系統處理 - 您可以使用 Mercurial,SVN或什麼都沒有 - 您仍然需要在系統上安裝Git才能使用 react-native-git-upgrade。 Git 也需要在PATH 中提供。

2. .安裝 react-native-git-upgrade 模組

react-native-git-upgrade 模塊提供CLI,必須全局安裝:
$ npm install -g react-native-git-upgrade

3.運行命令

運行以下命令開始升級到最新版本的過程:
$ react-native-git-upgrade
您可以通過傳遞參數來指定React Native版本:react-native-git-upgrade X.Y.Z
模板以優化的方式升級。您仍然可能會遇到衝突,但僅限於Git 3路合併失敗的地方,具體取決於版本以及您修改源的方式。

4. 解決衝突

衝突的文件包括分隔符,這些分隔符非常清楚變更的來源。例如:
13B07F951A680F5B00A75B9A /* Release */ = {
  isa = XCBuildConfiguration;
  buildSettings = {
    ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
<<<<<<< ours
    CODE_SIGN_IDENTITY = "iPhone Developer";
    FRAMEWORK_SEARCH_PATHS = (
      "$(inherited)",
      "$(PROJECT_DIR)/HockeySDK.embeddedframework",
      "$(PROJECT_DIR)/HockeySDK-iOS/HockeySDK.embeddedframework",
    );
=======
    CURRENT_PROJECT_VERSION = 1;
>>>>>>> theirs
    HEADER_SEARCH_PATHS = (
      "$(inherited)",
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
      "$(SRCROOT)/../node_modules/react-native/React/**",
      "$(SRCROOT)/../node_modules/react-native-code-push/ios/CodePush/**",
    );
您可以將“我們的”視為“您的團隊”,將“他們的”視為“React Native dev團隊”。

替代

僅在以上情況不起作用的情況下使用此選項。

1. 升級 react-native 依賴項

請注意最新版本的react-native npm軟件包(或使用npm info react-native來檢查)。

現在使用 npm install --save 在您的項目中安裝該版本的 react-native:
$ npm install --save react-native@X.Y
# where X.Y is the semantic version you are upgrading to
npm WARN peerDependencies The peer dependency react@~R included from react-native...
如果您看到有關peerDependency的警告,也可以通過運行升級來做出反應:
$ npm install --save react@R
# where R is the new version of react from the peerDependency warning you saw

2. 升級項目模板

新的npm包可能包含對運行react-native init時通常生成的文件的更新,如iOS和Android子項目。

您可以查閱rn-diff以查看項目模板文件是否有更改。如果沒有,只需重建項目並繼續開發。如果發生細微更改,您可以手動更新項目並重建。

如果有重大更改,請在終端中運行以獲取以下內容:

$ react-native upgrade
這將根據最新模板檢查您的文件並執行以下操作:
  • 如果模板中有新文件,則只需創建它。
  • 如果模板中的文件與您的文件相同,則會跳過該文件。
  • I如果項目中的文件與模板不同,則會提示您; 您可以選擇保留文件或使用模板版本覆蓋它。

手動升級

某些升級需要手動步驟,例如 0.13至0.14,或0.28至0.29。 請務必在升級時檢查發行說明,以便確定特定項目可能需要的任何手動更改。



You May Also Like

0 意見