如何同時運行多個React Native、8081端口占用問題(教你輕松修改React Native端口)

當我們運行一個React Native項目的時候,React Native會啟動一個默認端口號為8081的本地服務,該8081的服務就是React Native項目的一個本地服務器,用于提供JSBundle包和一些靜態資源。這一切都是React Native幫開發者配置好的,一切都是那么簡便,但如果出現如下幾種情況,那么你需要認真閱讀本文了:

8081端口被其他程序占用(比如殺毒軟件),導致React Native無法正常啟動8081的服務;
如果你想同時運行多個React Native項目;
如果你好奇React Native的默認8081是如何設置的,想修改它;
修改React Native監聽端口
啟動React Native服務默認會監聽8081端口,那么如何修改這個默認的端口呢?接下來就跟著我一步一步的來修改React Native服務默認監聽的端口吧!

第一步:修改Server端口
所謂Server端口,也就是我們通過npm start或者react-native run-xxx命令啟動的React Native本地服務器的端口號,如圖:


image.png

第二步:修改iOS項目的端口號

在修改了React Native 服務的端口號之后,我們要需改iOS項目的端口號讓它從新端口獲取jsbundle,否則的話會出現No bundle URL present錯誤。

提示:如果你的React Native項目沒有iOS模塊可以忽略此步驟;

  • 通過XCode打開React Native項目中的iOS項目;
  • 修改以下文件的端口號:
    • RCTWebSocketExecutor.m
    • RCTBridgeDelegate.h
    • RCTBundleURLProvider.m
    • RCTInspectorDevServerHelper.mm
    • RCTPackagerConnectionBridgeConfig.m

為了方便查找這些文件并定位到端口號,你可以借助XCode的Show the Find navigator功能來查找文本8081

image.png

接下就可以通過react-native run-ios來運行iOS項目并從新的端口讀取jsbundle了。

第三步:修改Android項目的端口號

在修改了React Native 服務的端口號之后,我們要需改Android項目的端口號讓它從新端口獲取jsbundle,否則的話會出現No bundle URL present錯誤。

提示:如果你的React Native項目沒有Android模塊可以忽略此步驟;

  • 打開調試工具(Dev Settings),可以通過(command+M) 完成;


    image.png
  • 點擊 Debug server host & port for device,添加localhost:xxx其中xxx為新的端口地址;

  • 重新reload一下,就可以從新的端口加載jsbundle了。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。