更多内容参见个人技术博客,无广告欢迎关注
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经典版本)
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-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绝对路径
6、