Cordova 热更新-自定义服务端
2019-02-27 本文已影响2人
倪灏
前言
- CodePushServer 提供了热修复的服务端,可以让我们自定义安装和部署。(文档地址)
安装
文档中提供了两种安装方式,一种是Docker,一种是自己手动安装。我这里使用的是自己手动安装所有配置。
安装 PM2
使用 PM2 来管理包。
$ sudo npm i -g pm2
安装数据库
这里使用的是 mysql数据库,安装过程就不描述了,大家自行安装。
注意:mysql8.x默认auth caching_sha2_pasword不支持node-mysql2 (issue)
安装 code-push-server
官网上支持两种方式,但是我在实践中发现使用npm安装一直不成功,所以使用的源码安装。
$ git clone https://github.com/lisong/code-push-server.git
$ cd code-push-server
$ npm install
初始化数据库
$ code-push-server-db init --dbhost "your mysql host" --dbport "your mysql port" --dbuser "your mysql user" --dbpassword "your mysql password"
或
$ ./bin/db init --dbhost "your mysql host" --dbport "your mysql port" --dbuser "your mysql user" --dbpassword "your mysql password"
输出 success 就说明数据库安装成功了
配置
安装成功后需要配置 config.js 和 process.json文件。config.js主要是用来配置数据库信息,安装包的存储方式和安装包的下载地址。process.json是用来配置启动服务的信息。
config.js
config.js 的路径:
$ cd code-push-server
$ vim config/config.js
- local.storageDir 修改为服务器上的路径,保证有读写权限,这个是用来保存打包好用来热修复的文件。
- local.downloadUrl 将127.0.0.1 修改为你自己服务器的ip或域名。
3.common.dataDir 修改为服务器上的路径,保证有读写权限。
- jwt.tokenSecret 这个是用来加密和生成随机串的一个字符串。可以从 https://www.grc.com/passwords.htm 这个网站上获取。
5.db config 修改username,password,host,port
process.json
process.json 的路径
$ cd code-push-server
$ vim docs/process.json
- script 修改为 "your source code dir"/bin/www
2.CONFIG_FILE 是 config.js 文件的绝对路径
启动服务
// 启动
$ pm2 start process.json
// 重启
$ pm2 restart process.json
// 停止
$ pm2 stop process.json
检查是否成功
$ curl -I http://YOUR_CODE_PUSH_SERVER_IP:3000/
return httpCode 200 OK
补充
CodePushServer 除了支持将文件保存在服务器上,也支持将文件保存在云服务上。只需要修改config.js中的配置就可以。
支持的类型
- local (default)
- qiniu (qiniu)
- s3 (aws)
- oss (aliyun)
- tencentcloud
修改为oss
修改config.js文件
- common.storageType 修改为 oss
- oss config,修改为自己在oss中的参数