应用场景
项目打包后发布到正式环境,需要后端配合或者前端自己上传到服务器上,操作不便且容易产生问题,比如后台不在的情况而前台没有服务器的信息,这时发布就被延;或者前端自己上传容易导致误操作,如果上传错地方没正确上传都可能导致线上直接崩掉,而这对于已发布的产品而言是致命的。因此,有必要实现自动化部署代码到线上,解放双手的同时也减轻后端兄弟的压力。
项目使用
1、在项目根目录下, 创建 deploy/products.js 文件
/* *读取env环境变量 */ const SERVER_ID = process.env.NODE_ENV === "prod" "A-生产环境", domain: "xxx.xxx.xxx", // 域名 host: "118.31.245.118", port: 22, username: "root", password: "Yrkj1234", indexpath: "/var/www/yiqitong/public/theme/index/default/index/", assetspath: "/var/www/yiqitong/public/h5-static/" }, { id: 1, name: "B-测试环境", domain: "yiqitong.118.easysoft168.com", host: "118.31.245.118", port: 22, username: "root", password: "Yrkj1234", indexpath: "/var/www/yiqitong/public/theme/index/default/index/", assetspath: "/var/www/yiqitong/public/h5-static/" } ]; module.exports = SERVER_LIST[SERVER_ID];
2、在项目根目录下, 创建 deploy/index.js 文件
// deploy/index.js里面 const scpClient = require("scp2"); const ora = require("ora"); const chalk = require("chalk"); const server = require("./products"); const spinner = ora( "正在发布到" + (process.env.NODE_ENV === "prod" "生产" : "测试") + "服务器..." ); var Client = require("ssh2").Client; var conn = new Client(); conn .on("ready", function() { // rm 删除dist文件,n 是换行 换行执行 重启nginx命令 我这里是用docker重启nginx conn.exec( "rm -rf /var/www/yiqitong/public/theme/index/default/index/index.htmln rm -rf /var/www/yiqitong/public/h5-static", function(err, stream) { if (err) throw err; stream .on("close", function(code, signal) { // 在执行shell命令后,把开始上传部署项目代码放到这里面 spinner.start(); scpClient.scp( "dist/index.html", { host: server.host, port: server.port, username: server.username, password: server.password, path: server.indexpath }, function(err) { if (err) { console.log(chalk.red("发布失败.n")); throw err; } else { scpClient.scp( "dist/h5-static/", { host: server.host, port: server.port, username: server.username, password: server.password, path: server.assetspath }, function(err) { spinner.stop(); if (err) { console.log(chalk.red("发布失败.n")); throw err; } else { console.log( chalk.green( "Success! 成功发布到" + (process.env.NODE_ENV === "prod" "生产" : "测试") + "服务器! n" ) ); } } ); } } ); conn.end(); }) .on("data", function(data) { console.log("STDOUT: " + data); }) .stderr.on("data", function(data) { console.log("STDERR: " + data); }); } ); }) .connect({ host: server.host, port: server.port, username: server.username, password: server.password });
3、添加 package.json 中的 scripts 命令, 自定义名称为 "deploy""scripts": {
"serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint", "test:unit": "vue-cli-service test:unit", "deploy:dev": "npm run build && cross-env NODE_ENV=dev node ./deploy", "deploy:prod": "npm run build && cross-env NODE_ENV=prod node ./deploy" },
运行npm run deploy:dev发布到测试环境;npm run deploy:prod发布到生产环境。至此大功告成。总结这种打包方式可能会存在风险问题,毕竟ip和密码都写在前端。我推荐使用Jenkins自动化打包参考文章segmentfault.com/a/119000001…总结
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年09月21日
2024年09月21日
- 林美音.1993-酒后的心声【瑞华】【WAV+CUE】
- 群星.2024-凡人歌电视剧原声带【正午阳光】【FLAC分轨】
- 黑神话悟空上品骨悚然精魄获取方法一览|上品骨悚然精魄收集攻略
- 《演灭Evotinction》正式登陆多平台发售!带你进入科幻潜行新境界
- 命运圣契2024公测最新兑换码大全 命运圣契开服可用兑换码汇总
- 银霞.1979-《回答·兰花草》新加坡限量复黑版[WAV+CUE]
- 王菲.1996-《乐乐精逊SACD日本限量版[WAV+CUE]
- 王菲.1996-《乐乐精逊SACD日本限量版[WAV+CUE]
- 不止黑神话!杭州给原创企业真金白银扶持 打造“杭州游戏”品牌
- 很有多样性:《战锤》首次引入非二元性别角色
- 《少女前线2:追放》项目组将裁员 官方:进一步优化组织结构
- 陈慧琳.2002-闪亮每一天新歌+精选2CD【正东】【WAV+CUE】
- 袁培华.1992-有缘【歌林】【WAV+CUE】
- 王瑞霞.1996-是我太软心【名冠】【WAV+CUE】
- 《谭维维 30首经典流行歌曲精选辑 2CD》[WAV/分轨][1.1GB]