搭建自己的code-push-server服务器

时间:2024-02-16 08:39:25

 

更多内容参见个人技术博客,无广告欢迎关注

 

 

CodePush 是微软提供的一套用于热更新 React Native 和 Cordova 应用的服务。

CodePush 是提供给 React Native 和 Cordova 开发者直接部署移动应用更新给用户设备的云服务。CodePush 作为一个*仓库,开发者可以推送更新 (JS, HTML, CSS and images),应用可以从客户端 SDK 里面查询更新。CodePush 可以让应用有更多的可确定性,也可以让你直接接触用户群。在修复一些小问题和添加新特性的时候,不需要经过二进制打包,可以直接推送代码进行实时更新。

 

CodePush Server是CodePush程序服务器! 微软的CodePush云在中国很慢,我们可以用它来构建我们的。 我使用七牛来存储文件,因为它简单快捷! 或者你可以使用[local / s3 / oss / tencentcloud]存储,只需修改config.js文件,它就是简单的配置。 

--------------

CodePush应用更新流程

从上图大家可以了解到,CodePush的云服务是Microsoft的,服务器有可能在国外,身在天朝的我们以及用户更新速度肯定是无比的慢;为了给用户最佳的用户体验,以及让代码和服务掌握在自己的手里,自己搭建code-push-server成为了必须!

------------------

1、安装node.js和npm

https://www.cnblogs.com/wood-life/p/10577516.html

 

2、安装MySQL(推荐5.7经典版本)

因为用的是自己公司的服务器,可以参考这篇文章 Linux安装Java和MySQL 

 

 

3、从npm上获取code-push-server

$ npm install code-push-server@latest -g

[root@wood ~]# npm i -g pm2

/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/pm2

/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

 

 

 

4、初始化数据库

$ code-push-server-db init --dbhost "127.0.0.1" --dbport "3306"  --dbuser "root" --dbpassword "12345678"
 

 

5、编辑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绝对路径

6、