前端部署从未如此简单、迅速、脚手架搭建

2,691 阅读2分钟

前端部署从未如此简单、迅速

前端也可以直接终端部署,无需开启连接工具,直接输入指令快速部署。

本地打包、压缩文件、上传服务器、解压、启动(java)、git打版本标签

npm地址哦

脚手架插件

  1. 使用 yargs执行指令交互
    const yargs = require("yargs/yargs");
    
    const cli = yargs();
    
    cli
      .usage("ben-cli-test [command] <options>") // 输出类型
      .demandCommand(1, "szqy-cli@" + context.benCliVersion) // 最少输入参数
      .strict() // 严格模式
      .alias("h", "help") // 别名
      .alias("v", "version") // 别名
      .recommendCommands() // 提示
      .wrap(cli.terminalWidth()) //设置宽度
      .epilogue(dedent`hello szqy-cli`) // 想要说的话
      .fail((err, msg) => {
        console.log(err);
      })
      .option("ci", {
        type: "boolean",
        hidden: true,
      }).command( // szqy-cli init --name web init 命令配置
        "init [name]",
        "Do init projecy",
        (yargs) => {
          yargs.option("name", {
            type: "string",
            describe: "project init",
            alias: "n",
          });
        },
        (argv) => {
          console.log(argv);
        }
      )
    
  1. 连接服务器

使用到ssh2

const { Client } = require("ssh2");

 sshClient
    .on("ready", () => {
      // // 执行自定义指令
      resolve("登录服务器成功");
    })
    .connect({
        "host": "192.168.110.60",
        "port": 22,
        "username": "root",
        "password": "123456",
        "devAddress": "/home/test/"
    });

脚手架实现的功能

  1. 初始化项目

执行szqy-cli init --name,name的参数有web 和 java。 初始化最外层生成szqy.json文件,并将json文件添加至.gitignore当中

    szqy-cli init --name web

生成json文件解析:buildCommand 运行打包指令,buildFileName 打包后的文件夹名称 model 类型包含(web || java) configServer 服务器配置文件 devAddress 服务器部署地址

{
  "buildCommand": "npm run build",
  "buildFileName": "dist",
  "model": "web",
  "configServer": {
    "host": "8.8.8.8
    "port": 22,
    "username": "root",
    "password": "123456",
    "devAddress": "/usr/share/"
  },
  "note": "host (服务器IP地址,禁止填写外网ip),port (服务器端口),devAddress(服务器包地址)"
}

  1. 项目打包 分为俩种模式正常部署模式和发布模式

打包时根据不同model, 指定不同任务队列,java环境下则需在pom下查找名称,并将服务器上指定java包停止、重启。

正常部署:本地打包➡ 本地生成压缩包➡ 登录服务器➡ 上传压缩包➡ 解压压缩包➡ 重新启动➡ 完成。

发布模式:本地打包➡ 本地生成压缩包➡ 登录服务器➡ 上传压缩包➡ 解压压缩包➡ 重新启动➡ 生成git版本标签➡完成(发布模式下需选择发布版本号)。

发布模式下还将会修改web下的package.json当中的version,java则是修改pom下的version

image.png 3. 项目快速开始

目前只增加模版项目和vue的

image.png