最近写了一个自动化部署的npm包zuo-deploy[1],只需点击一个按钮,就可以执行服务器部署脚本,完成功能更新迭代。客户端使用Vue+ElementUI,服务koa+socket+koa-session等。基础功能代码行不到,已开源在github。zuoxiaobai/zuo-deploy欢迎Star、Fork。这里介绍下具体实现细节、思路。
目录结构├──bin#命令行工具命令│├──start.js#zuodeploystart执行入口│└──zuodeploy.js#zuodeploy命令入口,在package.json的bin属性中配置├──docImages#README.md文档图片├──frontend#客户端页面/前端操作页面(koa-static静态服务指定目录)│└──index.html#Vue+ElementUI+axios+socket.io├──server#服务端│├──utils││├──logger.js#log4js││└──runCmd.js#nodechild_processspawn(执行shell脚本、pm2服务开启)│└──index.js#主服务(koa接口、静态服务+socket+执行shell脚本)├──.eslintrc.cjs#eslint配置文件+prettier├──args.json#用于pm2改造后,跨文件传递端口、密码参数├──CHANGELOG.md#release版本功能迭代记录├──deploy-master.sh#用于测试,当前目录开启服务偶,点击部署按钮,执行该脚本├──index.js#zuodeploystart执行文件,用于执行pm2startserver/index.js主服务├──package.json#项目描述文件,npm包名、版本号、cli命令名称、├──publish.sh#npmpublish(npm包)发布脚本└──README.md#使用文档复制代码前后端技术栈、相关依赖前端/客户端静态html+css,非前端工程化,库都以cdn形式引入,通过库以UMD打包方式暴露的全局变量使用vue3,MVVM框架,不用操作domelement-plus,基础表单样式统一、美化axios,请求接口socket.io,接收实时部署log服务端普通接口,可能需要等完全部署好后,才能拿到结果基于Node.js技术栈,无数据库
转载请注明:http://www.0431gb208.com/sjszlfa/524.html