搭建本身的code-push-server服務器

CodePush 是微軟提供的一套用於熱更新 React Native 和 Cordova 應用的服務。

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

由於用的是本身公司的服務器,能夠參考這篇文章 Linux安裝Java和MySQL  

 

 

三、從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-server
  • common.dataDir 改爲本身本地目錄且保證當前用戶有讀寫權限
  • jwt.tokenSecret 從 https://www.grc.com/passwords.htm網站中獲取隨機串替換INSERT_RANDOM_TOKEN_KEY
  • db 配置數據庫也就是第4步中的初始化信息: username,password,host,port
process.json
  • script 指向你安裝的目錄,經過npm安裝code-push-server後控制檯中會顯示此地址 code-push-server/bin/www
  • CONFIG_FILE 指向config.js絕對路徑

六、

相關文章
相關標籤/搜索