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

期待已久的新課上線啦荒吏!解鎖React Native開發(fā)新姿勢敛惊,一網打盡React Native最新與最熱技術,點我Get!!!

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

  1. 8081端口被其他程序占用(比如殺毒軟件)鸵鸥,導致React Native無法正常啟動8081的服務;
  2. 如果你想同時運行多個React Native項目丹皱;
  3. 如果你好奇React Native的默認8081是如何設置的妒穴,想修改它;

修改React Native監(jiān)聽端口

啟動React Native服務默認會監(jiān)聽8081端口摊崭,那么如何修改這個默認的端口呢讼油?接下來就跟著我一步一步的來修改React Native服務默認監(jiān)聽的端口吧!

第一步:修改Server端口

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

server_port

臨時修改Server端口

查看最新的server.js的源碼乏屯,不難發(fā)現一下一段代碼:

...
command: '--port [number]',
default: 8081,
parse: (val: string) => Number(val),
...
   

從上述代碼中可以看出,我們在啟動react native服務的時候可以為它指定一個端口號:

react-native start --port=8082

提示:上述代碼瘦赫,是2017年8月1號提交的一個pull request辰晕,所以說在2017年8月1之前的React Native版本是沒有這個功能的。

永久修改Server端口

要永久修改這個默認端口號确虱,我們需要修改server.js文件含友,server.js所在位置,在:

你的項目名稱/node_modules/react-native/local-cli/server/server.js

找到這個文件校辩,打開它窘问,然后將默認的8081端口修改為你想要的端口號即可:

server_port

修改好之后,需要驗證一下有么有生效宜咒,怎么驗證呢惠赫,方法很簡單,在項目根目錄下運行npm start即可:

server_port

從上圖可以看出荧呐,這里我們已經將react-native的默認端口修改為了8082汉形。

第二步:修改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

Show the Find navigator

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

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

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

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

  • 打開調試工具(Dev Settings)侦高,可以通過(command+M) 完成;
  • 點擊 Debug server host & port for device,添加localhost:xxx其中xxx為新的端口地址厌杜;
    localhost.png
  • 重新reload一下奉呛,就可以從新的端口加載jsbundle了。

另外夯尽,如果你的項目是源碼級依賴React Native的話瞧壮,也可以通過修改AndroidInfoHelpers.java文件來完成對Android項目的端口的修改。


public class AndroidInfoHelpers {
  public static final String EMULATOR_LOCALHOST = "10.0.2.2";
  public static final String GENYMOTION_LOCALHOST = "10.0.3.2";
  public static final String DEVICE_LOCALHOST = "localhost";

  private static final int DEBUG_SERVER_HOST_PORT = 8081;
  private static final int INSPECTOR_PROXY_PORT = 8081;
  ...
AndroidInfoHelpers.png

如何同時運行多個react native項目

因為端口綁定的緣故匙握,默認情況下react native是不支持同時運行多個項目的咆槽。

如果我們要同時運行多個react native項目的話,需要為同時運行的多個項目分配不同的端口號圈纺。這樣以來秦忿,我們就可以讓react native支持同時運行多個項目了麦射。關于如何為不同項目分配端口號,查看上文 [修改React Native監(jiān)聽端口](#修改React Native監(jiān)聽端口) 的教程即可灯谣。

如果大家對修改React Native端口還有不明白的地方,可以在文章下方給我留言法褥,我看到了后會及時回復的哦。
另外也可以關注我的新浪微博@CrazyCodeBoy酬屉,或者關注我的Github來獲取更多有關React Native開發(fā)的技術干貨

告訴大家一個好消息揍愁,為大家精心準備的React Native視頻教程發(fā)布了呐萨,大家現可以看視頻學React Native了。

如果莽囤,大家在開發(fā)原生模塊中遇到問題可以在本文的下方進行留言谬擦,我看到了后會及時回復的哦。
另外也可以關注我的新浪微博朽缎,或者關注我的Github來獲取更多有關React Native開發(fā)的技術干貨惨远。

推薦學習:視頻教程《React Native開發(fā)跨平臺GitHub App》

參考

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市话肖,隨后出現的幾起案子北秽,更是在濱河造成了極大的恐慌,老刑警劉巖最筒,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贺氓,死亡現場離奇詭異,居然都是意外死亡床蜘,警方通過查閱死者的電腦和手機辙培,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來邢锯,“玉大人扬蕊,你說我怎么就攤上這事〉で妫” “怎么了尾抑?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸥鹉。 經常有香客問我蛮穿,道長,這世上最難降的妖魔是什么毁渗? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任践磅,我火速辦了婚禮,結果婚禮上灸异,老公的妹妹穿的比我還像新娘府适。我一直安慰自己羔飞,他們只是感情好,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布檐春。 她就那樣靜靜地躺著逻淌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疟暖。 梳的紋絲不亂的頭發(fā)上卡儒,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音俐巴,去河邊找鬼骨望。 笑死,一個胖子當著我的面吹牛欣舵,可吹牛的內容都是我干的擎鸠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缘圈,長吁一口氣:“原來是場噩夢啊……” “哼劣光!你這毒婦竟也來了?” 一聲冷哼從身側響起糟把,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绢涡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后遣疯,有當地人在樹林里發(fā)現了一具尸體垂寥,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年另锋,在試婚紗的時候發(fā)現自己被綠了滞项。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡夭坪,死狀恐怖文判,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情室梅,我是刑警寧澤戏仓,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站亡鼠,受9級特大地震影響赏殃,放射性物質發(fā)生泄漏。R本人自食惡果不足惜间涵,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一仁热、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧勾哩,春花似錦抗蠢、人聲如沸举哟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妨猩。三九已至,卻和暖如春秽褒,著一層夾襖步出監(jiān)牢的瞬間壶硅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工销斟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留森瘪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓票堵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逮栅。 傳聞我的和親對象是個殘疾皇子悴势,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容