当前位置: 首页 > news >正文

搭建自己的code-push-server服务器

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经典版本)

  • Linux
  • macOS
  • Microsoft Windows
  • Others
因为用的是自己公司的服务器,可以参考这篇文章 Linux安装Java和MySQL  

 

 

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

下载文件 code-push-server-config.zip 

config.js 

  • local.storageDir 改成自己本地目录且保证当前用户有读写权限(推荐使用root用户)
  • local.downloadUrl 替换 127.0.0.1 为本机ip,其实这里不用改,后面用Nginx反向代理127.0.0.1:3000 -> https://your-domain/code-push-server
  • common.dataDir 改成自己本地目录且保证当前用户有读写权限
  • jwt.tokenSecret 从 https://www.grc.com/passwords.htm网站中获取随机串替换INSERT_RANDOM_TOKEN_KEY
  • db 配置数据库也就是第4步中的初始化信息: username,password,host,port
process.json
  • script 指向你安装的目录,通过npm安装code-push-server后控制台中会显示此地址 code-push-server/bin/www
  • CONFIG_FILE 指向config.js绝对路径

6、

 

转载于:https://www.cnblogs.com/wood-life/p/10728640.html

相关文章:

  • Hyper-V 配置网络 (高级篇)
  • HTTP劫持和DNS劫持
  • 关于语言的争论
  • webservice学习教程(一):理论
  • C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别
  • 自制jQuery图片切换插件ImgSlider v1.0
  • CORS简介
  • 《Android/OPhone 开发完全讲义》目录
  • mac pycharm快捷键
  • asp.net architecture
  • Exchange 2010 之:1—DAG
  • 什麽才是考驗人生的跟本
  • 「【算法进阶0x30】数学知识A」作业简洁总结
  • 「线性基」学习笔记and乱口胡总结
  • F#教程:+运算符也是函数
  • C语言笔记(第一章:C语言编程)
  • eclipse的离线汉化
  • IOS评论框不贴底(ios12新bug)
  • JavaScript函数式编程(一)
  • js 实现textarea输入字数提示
  • Python3爬取英雄联盟英雄皮肤大图
  • Quartz初级教程
  • React-生命周期杂记
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • vue自定义指令实现v-tap插件
  • Yeoman_Bower_Grunt
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 对超线程几个不同角度的解释
  • 分享一份非常强势的Android面试题
  • 给新手的新浪微博 SDK 集成教程【一】
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 解决iview多表头动态更改列元素发生的错误
  • 解析带emoji和链接的聊天系统消息
  • 坑!为什么View.startAnimation不起作用?
  • 前端面试题总结
  • 如何胜任知名企业的商业数据分析师?
  • 如何在GitHub上创建个人博客
  • 使用docker-compose进行多节点部署
  • 使用Gradle第一次构建Java程序
  • 移动端唤起键盘时取消position:fixed定位
  • 由插件封装引出的一丢丢思考
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #QT(一种朴素的计算器实现方法)
  • (23)Linux的软硬连接
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (ZT)一个美国文科博士的YardLife
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET MVC第五章、模型绑定获取表单数据
  • .net6+aspose.words导出word并转pdf
  • .NET学习教程二——.net基础定义+VS常用设置
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • @开发者,一文搞懂什么是 C# 计时器!