CodePush 是提供給 React Native 和 Cordova 開發者直接部署移動應用更新給用戶設備的雲服務。CodePush 做爲一箇中央倉庫,開發者能夠推送更新 (JS, HTML, CSS and images),應用能夠從客戶端 SDK 裏面查詢更新。CodePush 可讓應用有更多的可肯定性,也可讓你直接接觸用戶羣。在修復一些小問題和添加新特性的時候,不須要通過二進制打包,能夠直接推送代碼進行實時更新。html
CodePush Server是CodePush程序服務器! 微軟的CodePush雲在中國很慢,咱們能夠用它來構建咱們的。 我使用七牛來存儲文件,由於它簡單快捷! 或者你可使用[local / s3 / oss / tencentcloud]存儲,只需修改config.js文件,它就是簡單的配置。 node
--------------mysql
CodePush應用更新流程linux
從上圖你們能夠了解到,CodePush的雲服務是Microsoft的,服務器有可能在國外,身在天朝的咱們以及用戶更新速度確定是無比的慢;爲了給用戶最佳的用戶體驗,以及讓代碼和服務掌握在本身的手裏,本身搭建code-push-server成爲了必須!------------------sql
一、安裝node.js和npmdocker
http://www.javashuo.com/article/p-yfksumxx-h.html
二、安裝MySQL(推薦5.7經典版本)shell
三、從npm上獲取code-push-server數據庫
$ npm install code-push-server@latest -g
[root@wood ~]# npm i -g pm2npm
/usr/local/lib/nodejs/node-v8.16.0-linux-x86/bin/pm2 -> /usr/local/lib/nodejs/node-v8.16.0-linux-x86/lib/node_modules/pm2/bin/pm2json
/usr/local/lib/nodejs/node-v8.16.0-linux-x86/bin/pm2-dev -> /usr/local/lib/nodejs/node-v8.16.0-linux-x86/lib/node_modules/pm2/bin/pm2-dev
/usr/local/lib/nodejs/node-v8.16.0-linux-x86/bin/pm2-docker -> /usr/local/lib/nodejs/node-v8.16.0-linux-x86/lib/node_modules/pm2/bin/pm2-docker
/usr/local/lib/nodejs/node-v8.16.0-linux-x86/bin/pm2-runtime -> /usr/local/lib/nodejs/node-v8.16.0-linux-x86/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.8 (node_modules/pm2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.8: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"ia32"})
+ pm2@3.5.0
added 310 packages from 258 contributors in 22.057s
[root@wood ~]# npm install code-push-server@latest -g
npm WARN deprecated circular-json@0.5.9: CircularJSON is in maintenance only, flatted is its successor.
> typechecker@2.0.8 preinstall /usr/local/lib/nodejs/node-v8.16.0-linux-x86/lib/node_modules/code-push-server/node_modules/extract-opts/node_modules/typechecker
> node ./cyclic.js
> typechecker@2.0.8 preinstall /usr/local/lib/nodejs/node-v8.16.0-linux-x86/lib/node_modules/code-push-server/node_modules/extendr/node_modules/typechecker
> node ./cyclic.js
/usr/local/lib/nodejs/node-v8.16.0-linux-x86/bin/code-push-server -> /usr/local/lib/nodejs/node-v8.16.0-linux-x86/lib/node_modules/code-push-server/bin/www
/usr/local/lib/nodejs/node-v8.16.0-linux-x86/bin/code-push-server-db -> /usr/local/lib/nodejs/node-v8.16.0-linux-x86/lib/node_modules/code-push-server/bin/db
+ code-push-server@0.5.4
added 440 packages from 498 contributors in 25.962s
四、初始化數據庫
$ code-push-server-db init --dbhost "127.0.0.1" --dbport "3306" --dbuser "root" --dbpassword "12345678"
五、編輯code-push-server的config.js配置文件和process.json
config.js
local
.storageDir
改爲本身本地目錄且保證當前用戶有讀寫權限(推薦使用root用戶)local
.downloadUrl
替換 127.0.0.1
爲本機ip,其實這裏不用改,後面用Nginx反向代理127.0.0.1:3000 -> https://your-domain/code-push-servercommon
.dataDir
改爲本身本地目錄且保證當前用戶有讀寫權限jwt
.tokenSecret
從 https://www.grc.com/passwords.htm
網站中獲取隨機串替換INSERT_RANDOM_TOKEN_KEY
db
配置數據庫也就是第4步中的初始化信息: username
,password
,host
,port
script
指向你安裝的目錄,經過npm安裝code-push-server後控制檯中會顯示此地址 code-push-server/bin/www
CONFIG_FILE
指向config.js絕對路徑六、