vue服务端打包及自动部署
上次给CI环境搭建好了,这次写了一个脚本用于服务端打包及部署使用,解决了前端需要频繁打包的问题,即时将代码推到工程库,服务端自动打包作发布,然后测试人员即时测试,尽早发现问题。
发布原理:
我没有通过软链的方式作发布,因为目前在Dev和Test环境也不需要用到回滚的地方,就是直接将打包好的文件解压到指定的目录下面。
主要流程如下:
gitlab-runner中.gitlab-ci.yml配置通过不同的分支,触发不同的构建脚本
构建脚本拉取最新代码,然后安装依赖及打不同环境的包
将打好的包,通过scp传递到Dev/Test所在的服务器
通过ssh触发Dev / Test的发布脚本,主要是将压缩包解压到网站目录。
作清理工作
主要用到的脚本
.gitlab-ci.yml
stages:
- deploy-dev
- deploy-test
deploy_develop:
stage: deploy-dev
tags:
- nodejs
- php
script:
- /data/scripts/ci/web_deploy_dev.sh
only:
- dev
deploy_test:
stage: deploy-test
tags:
- nodejs
- php
script:
- /data/scripts/ci/web_deploy_test.sh
only:
- release
安装依赖及打包,传送文件,web_deploy_dev.sh
##
#前端工程自动化构建
#dev环境
##
node_path=/data/scripts/node/bin/node
npm_path=/data/scripts/node/bin/npm
product=web_cloudTax_manage_dev #不能重复
web_path=/tmp/$product
target_path="${web_path}/dist"
git_path=git@172.1.1.22:WEB-Developer/cloud_manage.git
function display(){
if [ $? -ne 0 ]
then
exit -999
fi
}
if [ ! -d $web_path ]
then
echo "创建文件夹${web_path}"
sudo mkdir -p $web_path
echo "进入项目路径:${web_path}"
cd $web_path
sudo git clone $git_path .
display
else
echo "进入项目路径:${web_path}"
cd $web_path
display
fi
sudo chown -R gitlab-runner:gitlab-runner $web_path
if [ -d $target_path ]
then
sudo chown -R gitlab-runner:gitlab-runner $target_path
fi
display
sudo git checkout test-dev
sudo git pull
display
#echo "进入项目路径:${web_path}"
#cd $web_path
echo "清除原先的dist打包文件夹"
sudo rm -rf $target_path
display
echo "安装依赖"
node_depency="${npm_path} i"
$node_depency
display
echo "开始打包"
build="${npm_path} run build:dev"
$build
display
if [ ! -d "$target_path" ]
then
echo "打包失败,dist未生成"
exit 1
fi
echo "进入打包目录${target_path}"
cd ${target_path}
echo "开始创建压缩包/tmp/${product}.tar.gz"
sudo tar cvzf "/tmp/${product}.tar.gz" .
display
echo "======================================"
echo "开始复制文件到部署服务器"
scp /tmp/${product}.tar.gz lc@172.11.10.68:/tmp
echo "文件复制完成到部署服务器"
display
echo "开始服务器部署"
ssh lc@172.11.10.68 /data/scripts/ci/web_deploy.sh $product.tar.gz
display
echo "清除原始压缩包"
sudo rm -rf "/tmp/${product}.tar.gz"
display
exit 0
发布脚本web_deploy.sh
#! /bin/sh
##
#将从gitlab-runner打包好的文件,拷贝到网站目录中作发布
##
webpath=/data/vhosts/vhosts.website/test_manage.zc.com
tar_file=$1
tar_path="/tmp/${tar_file}"
if [ ! -f "$tar_path" ]
then
echo "打包文件${tar_path}不存在,无法作发布处理"
exit
fi
echo "开始拷贝文件,从${tar_path}到${webpath}"
cp $tar_path $webpath
echo "复制完成"
echo "进入网站目录"
cd $webpath
if [ ! -f "${webpath}/${tar_file}" ]
then
echo "解压包${webpath}/${tar_file}不存在,无法发布"
exit
fi
echo "删除原来的"
#rm -rf ${webpath}
echo "解压"
tar xzf "${webpath}/${tar_file}" --overwrite .
echo "部署完成,执行清理操作"
chown -R nginx:nginx $webpath
rm "${webpath}/${tar_file}"
好了,通过上面的脚本就能快速构建前端的Vue工程了,不过由于时间关系,上面的脚本好多异常性没有作太多处理,这个在后续的使用中继续完善,目前是保证能基本可用。让测试人员用起来就行。
vue服务端打包及自动部署的更多相关文章
- [vue] vue服务端渲染nuxt.js
初始化 使用脚手架工具 create-nuxt-app 快速创建 npx create-nuxt-app <项目名> npx create-nuxt-app 执行一些选择 在集成的服务器端 ...
- vue服务端渲染简单入门实例
想到要学习vue-ssr的同学,自不必多说,一定是熟悉了vue,并且多多少少做过几个项目.然后学习vue服务端渲染无非解决首屏渲染的白屏问题以及SEO友好. 话不多说,笔者也是研究多日才搞明白这个服务 ...
- 解析Nuxt.js Vue服务端渲染摸索
本篇文章主要介绍了详解Nuxt.js Vue服务端渲染摸索,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. Nuxt.js 十分简单易用.一个简单 ...
- Egg + Vue 服务端渲染工程化实现
在实现 egg + vue 服务端渲染工程化实现之前,我们先来看看前面两篇关于Webpack构建和Egg的文章: 在 Webpack工程化解决方案easywebpack 文章中我们提到了基于 Vue ...
- vue服务端渲染提取css
vue服务端渲染,提取css单独打包的好处就不说了,在这里主要说的是抽取css的方法 要从 *.vue 文件中提取 CSS,可以使用 vue-loader 的 extractCSS 选项(需要 vue ...
- vue服务端渲染之nuxtjs
前言 本篇主要针对nuxtjs中的一些重要概念整理和代码实现! 在学习vue服务端渲染之前,先搞清楚几个概念: 什么是客户端渲染(CSR) 什么是服务端渲染(SSR) CSR和SSR有什么异同 客户端 ...
- vue服务端渲染axios预取数据
首先是要参考vue服务端渲染教程:https://ssr.vuejs.org/zh/data.html. 本文主要代码均参考教程得来.基本原理如下,拷贝的原文教程. 为了解决这个问题,获取的数据需要位 ...
- Nuxt.js vue服务端渲染
一.为什么要用Nuxt.js 原因其实不用多说,就是利用Nuxt.js的服务端渲染能力来解决Vue项目的SEO问题. 二.Nuxt.js和纯Vue项目的简单对比 1. build后目标产物不同 vue ...
- Vue 服务端渲染(SSR)
什么是服务端渲染? 简单理解是将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序. 服务端渲染的优点 更好的SEO,搜索引 ...
随机推荐
- 用BAPI_ACC_DOCUMENT_POST过账生成凭证
根据前台需要输入参数,在bapi里面传值,不同业务所需参数不同. dome1: "bapi结构赋值 LOOP AT lt_item INTO lw_item. wa_do ...
- MSSQL添加外键
alter table 需要建立外键的表 with check/nocheck add constraint 外键名字 foreign key (需要建立外键的字段名) references 外键表( ...
- Windows 10 路由表管理
基本管理命令: route print route命令基本格式: ROUTE [-f] [-p] [-|-] command [destination] [MASK netmask] [gateway ...
- win10查看桌面壁纸路径
如题,win10查看自己壁纸的缓存路径,就是找到壁纸的原图:在explorer里输入 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Themes 1 ...
- viscode 使用 格式的配置
viscode 现在也越来越适用于 python 开发使用的 IDEA ,慢慢不逊色于 pycharm .下面是关于使用的 格式[字体颜色,背景之类的配置] 1. 2. 如果是设置的 中文显示,在界 ...
- win10 anaconda3 python3.6安装tensorflow keras tensorflow_federated详细步骤及在jupyter notebook运行指定的conda虚拟环境
本文链接:https://blog.csdn.net/weixin_44290661/article/details/1026789071. 安装tensorflow keras tensorflow ...
- win10连接共享打印机
一.在运行中输入“\\共享打印机的主机ip”. 二.如果出现下面弹窗: 1.按Win键弹出开始菜单,直接在键盘上按zucelue,这个时候开始菜单里会检索到“编辑组策略”这个程序,按回车运行该程序.2 ...
- strcpy&memcpy&memmove
strcpy extern char *strcpy(char *dest,char *source); { assert((dest!=NULL)&&(source!=NULL)); ...
- LeetCode 676. Implement Magic Dictionary实现一个魔法字典 (C++/Java)
题目: Implement a magic directory with buildDict, and search methods. For the method buildDict, you'll ...
- C语言——初见指针
指针 指针是存放变量地址的变量. 由此我们可以知道了,指针存放的是变量地址且只能应用于内存中对象,指针本身也是一个变量.但是指针不仅仅可以存储变量地址,还可以是其他例如函数指针. C语言程序运行时,内 ...