前言
公司最近要采用react-native开发App,并且实现热更新。网上一查,微软的react-native-code-push框架,功能全面,支持增量更新。 心想,这么快就解决了吗?然后事情并没这么简单,由于我司产品用于内网环境中,react-native-code-push的服务器是外网。因此只能搭建自己的热更新服务器,最终通过code-push-server实现。
首先搭建属于自己的热更新服务器
1. 安装mysql(推荐安装5.7的版本)
2. 安装code-push-server
- 拉取code-push-server服务
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"
or
./bin/db init --dbhost "your mysql host" --dbport "your mysql port" --dbuser "your mysql user" --dbpassword "your mysql password"
output: success
- 配置code-push-server(楼主装在linux上的,windows一样,windows推荐pm2守护进程)
// /config/config.js
// 配置mysql数据库
db: {
username: process.env.RDS_USERNAME || "root",
password: process.env.RDS_PASSWORD || "root",
database: process.env.DATA_BASE || "codepush",
host: process.env.RDS_HOST || "127.0.0.1",
port: process.env.RDS_PORT || 3306,
dialect: "mysql",
logging: false,
operatorsAliases: false,
},
// 我采用的是本地储存,还有qiniu,upyun,Amazon s3,Aliyun OSS,tencentcloud等可供选择
local: {
// Binary files storage dir, Do not use tmpdir and it's public download dir.
storageDir: process.env.STORAGE_DIR || "/code-push/data",
// Binary files download host address which Code Push Server listen to. the files storage in storageDir.
downloadUrl: process.env.LOCAL_DOWNLOAD_URL || "http://127.0.0.1:3000/download",
// public static download spacename.
public: '/download'
}
除此之外这个cofig文件还可以配置redis,搭配redis食用效果更佳
- 好了接下来启动服务
// 项目根目录下
node ./bin/www &
- 检查是否启动成功
curl -I http://127.0.0.1:3000/
return HTTP/1.1 200 OK
网页查看
默认用户admin默认密码123456(保存得到的token)