React Native 熱更新 -- CodePush Server 私有化部署

CodePush 簡介

CodePush 是微軟提供的一套用于熱更新 React Native 和 Cordova 應(yīng)用的服務(wù)商乎。

CodePush 是提供給 React Native 和 Cordova 開發(fā)者直接部署移動應(yīng)用更新給用戶設(shè)備的云服務(wù)。CodePush 作為一個中央倉庫塑陵,開發(fā)者可以推送更新 (JS, HTML, CSS and images)爱态,應(yīng)用可以從客戶端 SDK 里面查詢更新谭贪。CodePush 可以讓應(yīng)用有更多的可確定性,也可以讓你直接接觸用戶群锦担。在修復(fù)一些小問題和添加新特性的時候故河,不需要經(jīng)過二進制打包,可以直接推送代碼進行實時更新吆豹。

私有化部署使用源碼

github地址: https://github.com/lisong/code-push-server

一、 環(huán)境配置


1. 通過 NVM 安裝 NodeJs & npm

NVM(Node version manager)顧名思義理盆,就是Node.js的版本管理軟件痘煤,可以輕松的在Node.js各個版本間切換,項目源碼在GitHub猿规;

如果你想長期做 node 開發(fā), 或者想快速更新 node 版本, 或者想快速切換 node 版本, 那么在非 Windows(如 osx, linux) 環(huán)境下, 請使用 nvm 來安裝你的 node 開發(fā)環(huán)境, 保持系統(tǒng)的干凈.如果你使用 Windows 做開發(fā), 那么你可以使用 nvmw 來替代 nvm衷快;

1.1 安裝 NVM

準(zhǔn)備命令:

shell> yum -y install gcc make gcc-c++ openssl-devel wget git

獲取 NVM 源碼:

  1. 直接從 github 找到最新版本通過wget下載到本地
    wget https://github.com/cnpm/nvm/archive/v0.23.0.tar.gz
  2. 或者直接克隆到本地通過
    git clone https://github.com/cnpm/nvm.git

安裝 nvm

# 解壓 nvm 安裝包
shell> tar -xf v0.23.0.tar.gz 

# cd 到解壓文件中姨俩,并執(zhí)行安裝
shell> ./install.sh 
shell> source ~/.bash_profile

執(zhí)行 nvm --version 顯示版本號表示安裝成功

1.2 安裝 NodeJs & npm

npm是隨同NodeJs一起安裝的包管理工具蘸拔,能解決NodeJS代碼部署上的很多問題。

通過版本號安裝(以 v6.9.4 為例)

# 安裝 v6.9.4 nodojs
shell> nvm install v6.9.4

# 切換版本
shell> nvm use v6.9.4

# 設(shè)置默認版本
shell> nvm alias default v6.9.4

執(zhí)行 node -v环葵、 npm --version 顯示版本號表示安裝成功

2. 安裝 MySQL 環(huán)境

2.1 配置YUM源

在MySQL官網(wǎng)中下載YUM源rpm安裝包:http://dev.mysql.com/downloads/repo/yum/

# 下載mysql源安裝包
shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安裝mysql源
shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm

檢查mysql源是否安裝成功

shell> yum repolist enabled | grep "mysql.*-community.*"

如下圖所示表示安裝成功

2.2 安裝 MySQL

shell> yum install mysql-community-server

2.3 啟動 MySQL 服務(wù)

shell> systemctl start mysqld

查看MySQL的啟動狀態(tài)

shell> systemctl status mysqld

2.4 設(shè)置開機啟動

shell> systemctl enable mysqld
shell> systemctl daemon-reload

2.5 修改 root 默認密碼

MySQL 安裝完成之后调窍,在 /var/log/mysqld.log 文件中給 root 生成了一個默認密碼。通過下面的方式找到 root 默認密碼张遭,然后登錄 MySQL 進行修改:

shell> grep 'temporary password' /var/log/mysqld.log

使用默認密碼登錄 MySQL 并修改密碼:

shell> mysql -uroot -p
# 輸入默認密碼登錄數(shù)據(jù)庫

mysql> SET PASSWORD = PASSWORD('newPasswoed');

注意:MySQL5.7 默認安裝了密碼安全檢查插件(validate_password)邓萨,默認密碼檢查策略要求密碼必須包含:大小寫字母萝映、數(shù)字和特殊符號觉阅,并且長度不能少于8位。
否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤病袄,如下圖所示:

二洁闰、 配置 CodePush 服務(wù)端


1. 安裝 code-push-server

shell> npm install code-push-server -g

2. 初始化數(shù)據(jù)庫

注意:使用數(shù)據(jù)庫 MySQL 5.7 時歉甚,需要更改一下默認設(shè)置。

2.1 修改數(shù)據(jù)庫默認設(shè)置:

shell> mysql -uroot -p
#輸入密碼登錄數(shù)據(jù)庫
mysql> use mysql;
mysql> update `mysql`.`user` set plugin='mysql_native_password' where User='root';

2.2 修改 code-push-server 文件中數(shù)據(jù)庫的配置文件

# cd 到 code-push-server 根目錄
shell> vi ./bin/db

修改圖示位置 dbpassword 的數(shù)值為MySQL數(shù)據(jù)庫的密碼扑眉。

2.3 初始化數(shù)據(jù)庫

shell> code-push-server-db init --dbhost localhost --dbuser root --dbpassword

3. 修改 config.js 配置文件

# cd 到 code-push-server 根目錄
shell> vi ./config/config.js

需要修改以下 3 個地方:

  1. 修改數(shù)據(jù)庫的配置信息:


  2. 修改 storageType 對應(yīng)的配置信息纸泄,以 local 為例:

    • 修改 storageDir 的值:
      • 可根據(jù)配置文件中的目錄結(jié)構(gòu)赖钞,在系統(tǒng)中新建文件夾 /Users/tablee/workspaces/storage
      • 也可以自建文件夾刃滓,并更改localstorageDir的值仁烹,及commondataDir的值。
    • 修改 downloadUrl 的值為本機的 IP 地址咧虎。
  3. 修改 jwt對應(yīng)的配置信息:
    https://www.grc.com/passwords.htm 這個地方卓缰,生成一個63 random alpha-numeric characters,填到tokenSecret字段里面砰诵。

4. 啟動 code-push-server 服務(wù)

shell> code-push-server #啟動服務(wù) 

瀏覽器中打開 http://服務(wù)器IP:3000 至此服務(wù)部署完畢征唬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市茁彭,隨后出現(xiàn)的幾起案子总寒,更是在濱河造成了極大的恐慌,老刑警劉巖理肺,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摄闸,死亡現(xiàn)場離奇詭異,居然都是意外死亡妹萨,警方通過查閱死者的電腦和手機年枕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乎完,“玉大人熏兄,你說我怎么就攤上這事∈饕蹋” “怎么了摩桶?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長帽揪。 經(jīng)常有香客問我硝清,道長,這世上最難降的妖魔是什么转晰? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任耍缴,我火速辦了婚禮,結(jié)果婚禮上挽霉,老公的妹妹穿的比我還像新娘防嗡。我一直安慰自己,他們只是感情好侠坎,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布蚁趁。 她就那樣靜靜地躺著,像睡著了一般实胸。 火紅的嫁衣襯著肌膚如雪他嫡。 梳的紋絲不亂的頭發(fā)上番官,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音钢属,去河邊找鬼徘熔。 笑死,一個胖子當(dāng)著我的面吹牛淆党,可吹牛的內(nèi)容都是我干的酷师。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼染乌,長吁一口氣:“原來是場噩夢啊……” “哼山孔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起荷憋,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤台颠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后勒庄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體串前,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年实蔽,在試婚紗的時候發(fā)現(xiàn)自己被綠了酪呻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡盐须,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漆腌,到底是詐尸還是另有隱情贼邓,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布闷尿,位于F島的核電站塑径,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏填具。R本人自食惡果不足惜统舀,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劳景。 院中可真熱鬧誉简,春花似錦、人聲如沸盟广。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筋量。三九已至烹吵,卻和暖如春碉熄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肋拔。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工锈津, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凉蜂。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓琼梆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跃惫。 傳聞我的和親對象是個殘疾皇子叮叹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容