搭建code-push-server伺服器用於react-native熱更新
阿新 • • 發佈:2019-01-11
之前我做熱更新使用了微軟的code-server,如果只是測試demo還好,要是真實專案中用別人的伺服器,程式碼都要傳到別人的伺服器,那豈不是坑爹?所以今天自己搭建了一個code-push-server,遇到了挺多坑的,網上的唯一的幾篇文章也沒什麼說明,只好自己摸索,經過大半天的摸索,終於搭建完成並測試成功。
第一步:要部署code-push-server,那就要搞臺伺服器吧,本人的mac硬碟空間有限,不打算在自己電腦上部署,於是我買了臺阿里雲主機,選了centerOS系統,拿到主機第一件事就是部署ssh。
一堆命令完成ssh認證,之後就不用輸入密碼了:
1,檢視有沒有.ssh檔案 :
cd ~/.ssh
2,沒有就建立
mkdir ~/.ssh
3,生成證明
ssh-keygen -t rsa
4, 將證明覆制到阿里雲
cd ~/.ssh
sup id_rsa.pub.pub [email protected]主機地址:~/.ssh/id_rsa.pub
5,登入阿里雲寫入rsa檔案
ssh [email protected]主機地址
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
經過上述一堆命令以後登入就不需要輸密碼了
ssh [email protected]主機地址 直接不用密碼登入阿里雲主機
第二步:
安裝npm
centerOs安裝軟體通過yum命令
所以 終端輸入 yum install npm
…..
第三步:
安裝code-push-server
npm install code-push-server -g
第四步:
由於code-push-server依賴mysql,所以必須先安裝mysql,這篇文章寫的很詳細,可參考
第五步:
初始化code-push-server資料庫
code-push-server-db init --dbhost localhost --dbuser root —dbpassword
第六步:
修改config.js
查詢config.js在哪裡
find / -name config.js
cd 到config目錄
vi config.js
config.js如下: 預設不用第三方平臺儲存可以不用管qiniu,oos
由於我執行code-push-server
一直提示我please create dir /Users/tablee/workspaces/storage
可能這段配置是相對mac來說的,而我在linux環境下建立了這個資料夾還是提示錯誤,所以我乾脆
將/Users/tablee/workspaces/storage
改為了 / ,經測試沒有問題
db: {
username: "root",
password: null,
database: "codepush",
host: "127.0.0.1",
dialect: "mysql"
},
//七牛雲端儲存配置 當storageType為qiniu時需要配置
qiniu: {
accessKey: "",
secretKey: "",
bucketName: "",
downloadUrl: "" //檔案下載域名地址
},
//阿里雲端儲存配置 當storageType為oss時需要配置
oss: {
accessKeyId: "",
secretAccessKey: "",
endpoint: "",
bucketName: "",
prefix: "", // 物件Key的字首,允許放到子資料夾裡面
downloadUrl: "", // 檔案下載域名地址,需要包含字首
},
//檔案儲存在本地配置 當storageType為local時需要配置
local: {
storageDir: "/",
//檔案下載地址 CodePush Server 地址 + '/download' download對應app.js裡面的地址
downloadUrl: “http://主機ip地址:3000",
// public static download spacename.
public: '/download'
},
jwt: {
// 登入jwt簽名金鑰,必須更改,否則有安全隱患,可以使用隨機生成的字串
// Recommended: 63 random alpha-numeric characters
tokenSecret: ‘從上面網址獲取填入’
},
common: {
dataDir: "/",
//選擇儲存型別,目前支援local,oss,qiniu,s3配置
storageType: "local"
},
第七步:
執行code-push-server
直接輸入命令code-push-server 即可
在瀏覽器中輸入http://主機地址:3000 看能否登入
預設登入賬號密碼為admin,123456 登入後可獲取token,這個token即客戶端需要用到的key.
至此,伺服器部署完畢.
==================
第八步:
客戶端配置參考之前的文章,這裡列出了與使用微軟伺服器不同的地方
本機在安裝了code-push的情況下,如何安裝參照之前的文章
1,後面加入自己的伺服器地址
登入填入上面獲取的token值
2,後面加入自己的伺服器地址
new CodePush("xxxxxxxxxx", MainApplication.this, BuildConfig.DEBUG,"http://主機地址:3000”)
3,上傳使用以下命令即可
code-push release-react MyApp-android android
其他基本與使用微軟伺服器一致。
至此整個流程完畢,經測可以下載並更新成功。