前端自动化部署之auto-deploy丨技术开发分享录

前端自动化部署之auto-deploy

{{ detail.nickname }}

转载 翻译 {{ formatTime(detail.create_time) }} 字数 {{ detail.content && detail.content.length }} 阅读 {{ detail.read_num }} {{ formatTag(v) }}

"auto-deploy git仓库:https://github.com/HEJIN2016/auto-deploy 欢迎给作者star,以表鼓励\n\n作者:[HEJIN2016](https://github.com/HEJIN2016) 善于构建轮子及二次开发,很有上进心,具体是大小牛,根据看客品吧,不同级别的前端眼光不一样,这个不好确评,不过个人感觉作者能力还是挺强的。\n\n好了,费话也不多说了,下面看下auto-deplay是如何实现自动化部署的?\n\n## 一、安装依赖\n\n```cli\n>  npm install archiver ssh2 -D\n```\n\n## 二、修改配置\n\n```\nconst Config = {\n  host: 'test.com', // 服务器ip地址或域名\n  port: 22, // 服务器ssh连接端口号\n  username: 'root', // ssh登录用户\n  password: '', // 密码\n  // privateKey: fs.readFileSync('myKey.key'), // 私钥,私钥与密码二选一\n\n  catalog: '/var/www/test', // 前端文件压缩目录,请勿以/符号结尾\n  buildDist: 'dist', // 前端文件打包之后的目录,默认dist\n  buildCommand: 'npm run build', // 打包前端文件的命令,默认为npm run build\n  readyTimeout: 20000 // ssh连接超时时间\n};\n```\n\n> autoDeploy.js源码文件:https://github.com/HEJIN2016/auto-deploy/blob/master/autoDeploy.js 注释很详细\n\n## 三、执行命令等待部署\n\n```cli\n> node autoDeploy.js\n```\n\n>[success] 命令可以放到package.json里,通过npm执行命令\n\n## 四、构建流程\n\n1、执行build命令\n2、压缩打包后的文件\n3、通过ssh连接服务器并上传压缩文件\n4、解压上传文件\n5、删除本地压缩文件\n\n## 五、不同环境配置\n\n```\n// 开发环境\nconst dev = {\n  host: 'dev.test.cn', // 服务器ip地址或域名\n  password: '', // 密码\n  catalog: '/var/www/test', // 前端文件压缩目录\n  port: 22, // 服务器ssh连接端口号\n  username: 'root', // ssh登录用户\n  privateKey: null, // 私钥,私钥与密码二选一\n};\n// 测试环境\nconst test = {\n  host: 'test.test.cn', // 服务器ip地址或域名\n  password: '', // 密码\n  catalog: '/var/www/test', // 前端文件压缩目录\n  port: 22, // 服务器ssh连接端口号\n  username: 'root', // ssh登录用户\n  privateKey: null, // 私钥,私钥与密码二选一\n};\n// 线上环境\nconst pro = {\n  host: 'test.test.cn', // 服务器ip地址或域名\n  password: '', // 密码,请勿将此密码上传至git服务器\n  catalog: '/var/www/test', // 前端文件压缩目录\n  port: 22, // 服务器ssh连接端口号\n  username: 'root', // ssh登录用户\n  privateKey: null, // 私钥,私钥与密码二选一\n};\n// 全局配置\nconst Config = {\n  // publishEnv: pro,\n  publishEnv: [ test ], // 发布环境,可填写多个,也可只填写一个\n\n  buildDist: 'dist', // 前端文件打包之后的目录,默认dist\n  buildCommand: 'npm run build', // 打包前端文件的命令\n  readyTimeout: 20000, // ssh连接超时时间\n  deleteFile: true // 是否删除线上上传的dist压缩包\n};\n```\n\n最后感谢作者 HEJIN2016 的分享,希望能帮助到大家!::j_0019::"
PS:写作不易,如要转裁,请标明转载出处。

如果此篇对您有帮助,可小额赞助,以兹鼓励!

猜你想看