1. 程式人生 > >搭建code-push-server伺服器用於react-native熱更新

搭建code-push-server伺服器用於react-native熱更新

之前我做熱更新使用了微軟的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 其他基本與使用微軟伺服器一致。 至此整個流程完畢,經測可以下載並更新成功。