之前我做热更新使用了微软的code-server,如果只是测试demo还好,要是真实项目中用别人的服务器,代码都要传到别人的服务器,那岂不是坑爹?所以今天自己搭建了一个code-push-server,遇到了挺多坑的,网上的唯一的几篇文章也没什么说明,只好自己摸索,经过大半天的摸索,终于搭建完成并测试成功。
第一步:要部署code-push-server,那就要搞台服务器吧,本人的mac硬盘空间有限,不打算在自己电脑上部署,于是我买了台阿里云主机,选了centerOS系统,拿到主机第一件事就是部署ssh。
一堆命令完成ssh认证,之后就不用输入密码了:
1,查看有没有.ssh文件 :
cd ~/.ssh
2,没有就创建
mkdir ~/.ssh
3,生成证明
ssh-keygen -t rsa
4, 将证明复制到阿里云
cd ~/.ssh
sup id_rsa.pub.pub root@主机地址:~/.ssh/id_rsa.pub
5,登录阿里云写入rsa文件
ssh root@主机地址
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
经过上述一堆命令以后登录就不需要输密码了
ssh root@主机地址 直接不用密码登录阿里云主机
第二步:
安装npm
centerOs安装软件通过yum命令
所以 终端输入 yum install npm
…..
第三步:
安装code-push-server
npm install code-push-server -g
第四步:
由于code-push-server依赖mysql,所以必须先安装mysql,这篇文章写的很详细,可参考
http://www.centoscn.com/mysql/2016/0315/6844.html
第五步:
初始化code-push-server数据库
code-push-server-db init --dbhost localhost --dbuser root —dbpassword
第六步:
修改config.js
查询config.js在哪里
find / -name config.js
cd 到config目录
vi config.js
config.js如下: 默认不用第三方平台存储可以不用管qiniu,oos
由于我运行code-push-server
一直提示我please create dir
/Users/tablee/workspaces/storage
可能这段配置是相对mac来说的,而我在linux环境下建立了这个文件夹还是提示错误,所以我干脆
将
/Users/tablee/workspaces/storage 改为了 / ,经测试没有问题
db: {
username: "root",
password: null,
database: "codepush",
host: "127.0.0.1",
dialect: "mysql"
},
//七牛云存储配置 当storageType为qiniu时需要配置
qiniu: {
accessKey: "",
secretKey: "",
bucketName: "",
downloadUrl: "" //文件下载域名地址
},
//阿里云存储配置 当storageType为oss时需要配置
oss: {
accessKeyId: "",
secretAccessKey: "",
endpoint: "",
bucketName: "",
prefix: "", // 对象Key的前缀,允许放到子文件夹里面
downloadUrl: "", // 文件下载域名地址,需要包含前缀
},
//文件存储在本地配置 当storageType为local时需要配置
local: {
storageDir: "
/
",
//文件下载地址 CodePush Server 地址 + '/download' download对应app.js里面的地址
downloadUrl:
“
http://主机ip地址:3000
",
// public static download spacename.
public: '/download'
},
jwt: {
// 登录jwt签名密钥,必须更改,否则有安全隐患,可以使用随机生成的字符串
// Recommended: 63 random alpha-numeric characters
// Generate using: https://www.grc.com/passwords.htm
tokenSecret: ‘
从上面网址获取填入
’
},
common: {
dataDir: "
/
",
//选择存储类型,目前支持local,oss,qiniu,s3配置
storageType: "local"
},
第七步:
运行code-push-server
直接输入命令code-push-server 即可
在浏览器中输入http://主机地址:3000 看能否登录
默认登录账号密码为admin,123456 登录后可获取token,这个token即客户端需要用到的key.
至此,服务器部署完毕.
==================
第八步:
客户端配置参考之前的文章,这里列出了与使用微软服务器不同的地方
本机在安装了code-push的情况下,如何安装参照之前的文章
1,后面加入自己的服务器地址
code push login http://主机地址:3000
登录填入上面获取的token值
2,后面加入自己的服务器地址
new CodePush("xxxxxxxxxx", MainApplication.this, BuildConfig.DEBUG," http://主机地址:3000”)
3,上传使用以下命令即可
code-push release-react MyApp-android android
其他基本与使用微软服务器一致。
至此整个流程完毕,经测可以下载并更新成功。