Cordova 热更新-自定义服务端

前言

  • 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
  1. local.storageDir 修改为服务器上的路径,保证有读写权限,这个是用来保存打包好用来热修复的文件。
  2. local.downloadUrl 将127.0.0.1 修改为你自己服务器的ip或域名。

3.common.dataDir 修改为服务器上的路径,保证有读写权限。

  1. 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
  1. 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文件

  1. common.storageType 修改为 oss
Snipaste_2019-02-27_16-57-23.png
  1. oss config,修改为自己在oss中的参数
Snipaste_2019-02-27_16-55-06.png

参考文档