使用node搭建的项目发布

849 阅读3分钟

使用node搭建的项目发布系统,可以使用命令直接发布,方便测试,解放重复劳动力。 目前支持node项目部署,纯前端打包部署。

git地址:

github.com/903529487/m…

示例

1. 待部署工程本地完成打包构建

把需要部署的项目进行打包,记录下打包后的目录路径。

2. 确定服务器端部署目录及发布文件夹

在liunx下,使用pwd命令可获取目录路径

3. 拉取上面git地址的代码,并修改配置

修改项目下的config.js,根据你的配置进行修改:

  {
    name: 'wx_admin_egg_node',
    ssh: {
      host: '11.11.11.11',
      port: 22,
      username: 'root',
      password: '',  
      privateKey: 'D:/mygitLab/lbr2', // ssh私钥(不使用此方法时请勿填写, 注释即可)
      passphrase: '' // ssh私钥对应解密密码(不存在设为''即可)
    },
    projectType:'node', //项目类型 node的项目就不打包node_modules目录
    targetDir: 'D:/mygitLab/wx_admin_egg_node', // 目标压缩目录(可使用相对地址)
    targetFile: 'dist.zip', // 目标文件
    openCompress: true, // 是否开启本地压缩
    openBackUp: true, // 是否开启远端备份
    deployDir: '/www/wwwroot' + '/', // 远端目录
    releaseDir: 'wx_admin_egg_node', // 发布目录
    command:'cnpm i;npm run stop;npm run start:prod;', //上传完毕执行的命令、脚本
  }

4. 运行自动化部署

安装依赖 npm i
运行npm run deploy

选择配置信息

自动化部署

5. 查看远端效果

远端部署目录

6. 再次部署 原目录已备份(开启远端备份生效)

远端部署目录

配置文件说明

/*
config.js
说明:
  请确保解压后的文件目录为dist
  🎉现已支持添加多个配置信息,自动化部署时支持选择配置信息运行
  🎉现已支修改服务器连接端口,支持ssh私钥及解密密码连接(ps:不使用此方法时,请注释privateKey)
  🎉现已更新模块引用逻辑,远端备份时间格式改为 `yyyy-MM-dd_HH:mm:ss`
*/

const config = [
  {
    name: 'wx_admin_web',
    ssh: {
      host: '11.11.11.11',  //服务器地址
      port: 22,   //服务器端口
      username: 'root',  //服务器管理员账号
      password: '',    // 服务器密码,如果使用秘钥登录,密码为空即可。
      privateKey: 'D:/mygitLab/lbr2', // ssh私钥(不使用此方法时请勿填写, 注释即可)
      passphrase: '' // ssh私钥对应解密密码(不存在设为''即可)
    },
    projectType:'',  //项目类型 node的项目就不打包node_modules目录,为空就是纯前端项目
    targetDir: 'D:/mygitLab/wx_admin_web/dist', // 目标压缩目录(可使用相对地址)
    targetFile: 'dist.zip', // 目标文件
    openCompress: true, // 是否开启本地压缩
    openBackUp: true, // 是否开启远端备份
    deployDir: '/www/wwwroot' + '/', // 远端目录
    releaseDir: 'wx_admin_web' // 发布目录
  },
  {
    name: 'wx_admin_egg_node',
    ssh: {
      host: '11.11.11.11',
      port: 22,
      username: 'root',
      password: '',  
      privateKey: 'D:/mygitLab/lbr2', // ssh私钥(不使用此方法时请勿填写, 注释即可)
      passphrase: '' // ssh私钥对应解密密码(不存在设为''即可)
    },
    projectType:'node', //项目类型 node的项目就不打包node_modules目录
    targetDir: 'D:/mygitLab/wx_admin_egg_node', // 目标压缩目录(可使用相对地址)
    targetFile: 'dist.zip', // 目标文件
    openCompress: true, // 是否开启本地压缩
    openBackUp: true, // 是否开启远端备份
    deployDir: '/www/wwwroot' + '/', // 远端目录
    releaseDir: 'wx_admin_egg_node', // 发布目录
    command:'cnpm i;npm run stop;npm run start:prod;', //上传完毕执行的命令、脚本
  }
]