浅谈Vue 自动化部署打包上线
网络编程 2021-07-04 15:03www.168986.cn编程入门
这篇文章主要介绍了浅谈Vue 自动化部署打包上线,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化随着长沙网络推广来一起学习学习吧
应用场景
项目打包后发布到正式环境,需要后端配合或者前端自己上传到服务器上,操作不便且容易产生问题,比如后台不在的情况而前台没有服务器的信息,这时发布就被延;或者前端自己上传容易导致误操作,如果上传错地方没正确上传都可能导致线上直接崩掉,而这对于已发布的产品而言是致命的。,有必要实现自动化部署代码到线上,解放双手的也减轻后端兄弟的压力。
项目使用
1、在项目根目录下, 创建 deploy/products.js 文件
/ 读取env环境变量 / const SERVER_ID = process.env.NODE_ENV === "prod" ? 0 : 1; / 定义多个服务器账号 及 根据 SERVER_ID 导出当前环境服务器账号 / const SERVER_LIST = [ { id: 0, name: "A-生产环境", domain: "xxx.xxx.xxx", // 域名 host: "118.31.245.118", port: 22, username: "root", password: "Yrkj1234", indexpath: "/var//yiqitong/public/theme/index/default/index/", assetspath: "/var//yiqitong/public/h5-static/" }, { id: 1, name: "B-测试环境", domain: "yiqitong.118.easysoft168.", host: "118.31.245.118", port: 22, username: "root", password: "Yrkj1234", indexpath: "/var//yiqitong/public/theme/index/default/index/", assetspath: "/var//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//yiqitong/public/theme/index/default/index/index.htmln rm -rf /var//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.s(); if (err) { console.log(chalk.red("发布失败.n")); throw err; } else { console.log( chalk.green( "Suess! 成功发布到" + (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./a/119000001…
到此这篇关于浅谈Vue 自动化部署打包上线的文章就介绍到这了,更多相关Vue 自动化部署打包内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南