code-push搭建

1,150 阅读1分钟

安装

  • code-push代码下载到本地:git clone https://github.com/lisong/code-push-server.git

  • cd code-push-server

  • npm install

  • 解决跨域访问:npm install cors

    • 在app.js中加入
    var cors = require('cors')
    app.use(cors());
    

配置

  • 修改配置文件
  • cd config
  • vim config.js
  • 主要需要的修改部分如下,需配置mysql及文件存储路径
config.development = {
  // Config for database, only support mysql.
  db: {
    username: process.env.RDS_USERNAME || "root ",
    password: process.env.RDS_PASSWORD || "123456 ",
    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,
  },
  // Config for local storage when storageType value is "local ".
  local: {
    // Binary files storage dir, Do not use tmpdir and it's public download dir.
    storageDir: process.env.STORAGE_DIR || "/home/codepush/storage ",
    // Binary files download host address which Code Push Server listen to. the files storage in storageDir.
    downloadUrl: process.env.LOCAL_DOWNLOAD_URL || "http://47.240.2.128:3000/download ",
    // public static download spacename.
    public: '/download'
  },
  jwt: {
    // Recommended: 63 random alpha-numeric characters
    // Generate using: https://www.grc.com/passwords.htm
    tokenSecret: process.env.TOKEN_SECRET ||'B4BDA53DEE90AD2AE2BC59C54CB54DA676DAB13F8EF7B258FC85EC8839E91FA0'
  },
  common: {
    codePushWebUrl:"http://127.0.0.1:3001 ",
    // data dir for caclulate diff files. it's optimization.
    dataDir: process.env.DATA_DIR || "/home/codepush/data ",
  },
}

  • 初始化code-push-server的MySQL数据库:./bin/db init --dbhost “127.0.0.1” --dbport “3306” --dbuser “root” --dbpassword “123456”
  • 创建process.json配置文件
{
    "apps " : [
        {
            "name "      : "code-push-server ",
            "max_memory_restart " : "300M ",
            "script "    : "/www/code-push-server/bin/www ",
            "instances "  : "max ", //开启实例数量,max为cpu核数
            "exec_mode "  : "cluster ", //集群模式,最大提升网站并发
            "env " : {
                "NODE_ENV " : "production ",
                "PORT " : 3000,
                "CONFIG_FILE " : "/www/code-push-server/config/config.js "
            }
        }
    ]
}
  • 启动:pm2 start process.json
  • 通过ip:3000可以访问code-push管理端

更新code-push-server

  • git pull --rebase origin master
  • ./bin/db upgrade --dbhost “127.0.0.1” --dbport “3306” --dbuser “root” --dbpassword “123456”
  • pm2 restart code-push-server # restart service

参考资料

CodePush(搭建自己的推送服务)
react-native-code-push进阶篇
CodePush热更新详细接入教程