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)過二進制打包,可以直接推送代碼進行實時更新吆豹。
私有化部署使用源碼
一、 環(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 源碼:
- 直接從 github 找到最新版本通過wget下載到本地
wget https://github.com/cnpm/nvm/archive/v0.23.0.tar.gz
, - 或者直接克隆到本地通過
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 個地方:
-
修改數(shù)據(jù)庫的配置信息:
-
修改
storageType
對應(yīng)的配置信息纸泄,以local
為例:- 修改
storageDir
的值:- 可根據(jù)配置文件中的目錄結(jié)構(gòu)赖钞,在系統(tǒng)中新建文件夾
/Users/tablee/workspaces/storage
; - 也可以自建文件夾刃滓,并更改
local
中storageDir
的值仁烹,及common
中dataDir
的值。
- 可根據(jù)配置文件中的目錄結(jié)構(gòu)赖钞,在系統(tǒng)中新建文件夾
- 修改
downloadUrl
的值為本機的 IP 地址咧虎。
- 修改
-
修改
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ù)部署完畢征唬。