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

脚手架插件

  1. 使用 yargs执行指令交互
js代码解读复制代码    const yargs = require("yargs/yargs");       const cli = yargs();       cli       .usage("ben-cli-test [command] ") // 输出类型       .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

js代码解读复制代码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当中

js代码解读复制代码    szqy-cli init --name web

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

js代码解读复制代码{   "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

3. 项目快速开始

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

请使用浏览器的分享功能分享到微信等