@xz2xl/auto-deploy

1.0.1 • Public • Published

@xz2xl/auto-deploy


前端一键自动化部署工具,支持开发、测试、生产多环境配置,支持单环境部署和多环境同时部署。配置好后即可一键自动完成打包、部署。

国内文档: gitee

推荐: node >= 12.1.0

安装

全局安装(推荐)

npm install -g @xz2xl/auto-deploy

本地安装

npm install @xz2xl/auto-deploy --save-dev

注意:采用本地安装方法的话一下所有命令前面要加上 npx, 例如: npx @xz2xl/auto-deploy --version

查看版本

@xz2xl/auto-deploy --version
# @xz2xl/auto-deploy -v

使用

以下以全局安装且在项目根目录下为例

1、 初始化项目

@xz2xl/auto-deploy init
# 或者使用简写 @xz2xl/auto-deploy i

2、 手动创建或修改配置文件 不使用上面的初始化命令的也可以手动创建配置文件。在项目根目录下手动创建 deploy.config.js 文件,复制以下代码按情况修改即可。

注意:server中的各环境配置换成自己的配置

module.exports = {
  'projectName': 'vue-antd-admin',          // 项目名称
  'privateKey': '',                         // 本地私钥地址。 Mac默认:/Users/[用户名]/.ssh/id_rsa
  'passphrase': '',                         // 本地私钥密码,没有则不填,默认为空
  'server': {                               // 部署服务器配置
    'dev': {                                // 开发环境
      'name': '开发环境',                    // 服务器配置名称
      'script': 'npm run build:dev',        // 打包命令
      'host': '192.168.1.3',                // 服务器地址
      'port': 22,                           // 服务器端口号
      'username': 'xiaozhou',               // 服务器登录名
      'password': '',                       // 服务器登录明码,
      'distPath': 'dist',                   // 打包后文件路径,默认:dist
      'webDir': '/Users/xiaozhou/web',      // 服务器部署路径,不可为空或者'/'
      'bakDir': '/Users/xiaozhou/back',     // 服务器文件备份路径
      'isRemoveRemoteFile': true,           // 是否删除远程文件,默认:true
      'isRemoveLocalFile': true             // 是否删除本地打包文件,默认:true
    },
    'test': {                               // 测试环境
      'name': '测试环境',                    // 服务器配置名称
      'script': 'npm run build:test',       // 打包命令
      'host': '192.168.1.3',                // 服务器地址
      'port': 22,                           // 服务器端口号
      'username': 'xiaozhou',               // 服务器登录名
      'password': '',                       // 服务器登录明码,
      'distPath': 'dist',                   // 打包后文件路径,默认:dist
      'webDir': '/Users/xiaozhou/web',      // 服务器部署路径,不可为空或者'/'
      'bakDir': '/Users/xiaozhou/back',     // 服务器文件备份路径
      'isRemoveRemoteFile': true,           // 是否删除远程文件,默认:true
      'isRemoveLocalFile': true             // 是否删除本地打包文件,默认:true
    },
    'prod': {                               // 生产环境
      'name': '生产环境',                    // 服务器配置名称
      'script': 'npm run build:prod',       // 打包命令
      'host': '192.168.1.3',                // 服务器地址
      'port': 22,                           // 服务器端口号
      'username': 'xiaozhou',               // 服务器登录名
      'password': '',                       // 服务器登录明码,
      'distPath': 'dist',                   // 打包后文件路径,默认:dist
      'webDir': '/Users/xiaozhou/web',      // 服务器部署路径,不可为空或者'/'
      'bakDir': '/Users/xiaozhou/back',     // 服务器文件备份路径
      'isRemoveRemoteFile': true,           // 是否删除远程文件,默认:true
      'isRemoveLocalFile': true             // 是否删除本地打包文件,默认:true
    }
  }
}

3、 部署

  • 单环境部署 --mode 环境对象
@xz2xl/auto-deploy deploy --mode dev
# OR
@xz2xl/auto-deploy deploy --mode test
# OR
@xz2xl/auto-deploy deploy --mode prod
  • 多环境部署,发布到 deploy.config.js 文件中的 server 字段下定义的所有环境中
@xz2xl/auto-deploy deploy
# OR
@xz2xl/auto-deploy d

输入 Y 或按下 Enter 键确认后即可开始自动部署。

注:可以在命令后添加 --no-build 跳过本地打包过程

本地安装扩展

运行 @xz2xl/auto-deploy init 后将会自动添加对应的代码到项目根目录下的 package.json 文件中 scripts 脚本中

"scripts": {
  // ...
  "deploy": "@xz2xl/auto-deploy deploy",
  "deploy:dev": "@xz2xl/auto-deploy deploy --mode dev",
  "deploy:test": "@xz2xl/auto-deploy deploy --mode test",
  "deploy:prod": "@xz2xl/auto-deploy deploy --mode prod"
}

然后使用下面代码也可以完成部署操作

npm run deploy:dev
# OR 
npm run deploy:test
# OR 
npm run deploy:prod

自定义环境

本项目仅内置 devtestprod 三种环境,若想添加自定义环境配置,在 deploy.config.js 文件中的 server 字段下按以下格式添加代码,同时在 package.json 文件中 scripts 脚本中添加 "deploy:customEnv": "@xz2xl/auto-deploy deploy --mode customEnv" 即可。

例如:

module.exports = {
  // ...
  'server': {                               // 部署服务器配置
    // ...
    'customEnv': {                          // 自定义环境
      'name': '自定义环境',                    // 服务器配置名称
      'script': 'customEnv 打包命令',        // 打包命令
      'host': '192.168.1.3',                // 服务器地址
      'port': 22,                           // 服务器端口号
      'username': 'xiaozhou',               // 服务器登录名
      'password': '',                       // 服务器登录明码,
      'distPath': 'dist',                   // 打包后文件路径,默认:dist
      'webDir': '/Users/xiaozhou/web',      // 服务器部署路径,不可为空或者'/'
      'bakDir': '/Users/xiaozhou/back',     // 服务器文件备份路径
      'isRemoveRemoteFile': true,           // 是否删除远程文件,默认:true
      'isRemoveLocalFile': true             // 是否删除本地打包文件,默认:true
    }
  }
}

安全性

1、 服务器的密码放上去是否不太安全?

密码可以不填,再把 privateKey 字段值修改成 '',部署的时候会提示让你输入密码

Readme

Keywords

Package Sidebar

Install

npm i @xz2xl/auto-deploy

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

32 kB

Total Files

20

Last publish

Collaborators

  • xz2xl