searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

前端项目部署脚本化

2023-11-29 02:19:23
18
0

一、安装zip工具

打包前,因为要将打包后的压缩文件上传到服务器,在执行zip命令时需要有插件支持。如果执行zip命令时,报zip command not found信息,解决方案如下:

  1. 下载zip-3.0-bin.zip和bzip2-1.0.5-bin.zip压缩包;
  2. 解压压缩包并把zip-3.0-bin.zip解压后的bin文件夹下的zip.exe文件和bzip2-1.0.5-bin.zip解压后的bin文件夹下的bzip2.dll文件统一放在本地git安装目录下(可在Git Bash命令行通过where git命令查看git安装目录);

二、脚本实现

实现步骤如下:

  1. 进入项目;
  2. 切换到要打包的分支,以master分支为例;
  3. 拉取最新代码;
  4. 执行打包命令;
  5. 将打包后的文件压缩;
  6. 将服务器原有dist文件进行备份;
  7. 将压缩文件上传至服务器对应nginx目录;
  8. 解压缩dist.zip文件;
  9. 重新启动nginx;
  10. 删除dist.zip文件;

具体的实现脚本(deploy_server.sh):

#!/bin/bash
# 进入项目目录
echo "1.enter to program"
cd e:program/XXX   // 此处根据实际情况编写项目目录
 
# 切换到master分支
echo "2. switch to master"
git checkout master
 
# 从git拉取最新代码
echo "3. pull latest code"
git pull
 
# 执行打包命令
echo "4. start pack"
npm run build  // 此处根据实际情况编写打包命令
 
# 压缩打包后的文件
echo "5. compress dist"
zip -r dist.zip ./dist/*
 
# 服务器IP
server_ip='XXX.XXX.XXX.XXX'  // 此处根据实际情况编写IP地址
 
# 创建备份文件
echo "6. backup dist"
ssh -p 22 root@"${server_ip}" "sudo mv /usr/share/nginx/html/dist /usr/share/nginx/html/dist.$(date +%Y%m%d%H%M%S)" // 此处根据实际情况编写dist存放目录,后面涉及到dist目录同理
 
# 将dist.zip迁移到dist目录
echo "7. zip to server"
scp -P 22 ./dist.zip root@"${server_ip}":/usr/share/nginx/html  
 
# 解压zip
echo "8. unzip dist"
ssh -p 22 root@"${server_ip}" "cd /usr/share/nginx/html && unzip dist.zip"
 
# 重新启动nginx
echo "9. restart nginx"
ssh -p 22 root@"${server_ip}" "systemctl restart nginx"
 
# 删除zip包
echo "10. delete zip"
ssh -p 22 root@"${server_ip}" "rm -rf /usr/share/nginx/html/dist.zip"

执行:

  1. 尽管脚本强制切换到master分支,最好在运行脚本前手动切换到master,效果更直观;
  2. 找到一个非工程代码的文件目录下,执行此脚本;
  3. 在Git Bash运行./deploy_server.sh执行脚本。

 

三、总结

本篇文章旨在帮助前端开发快速部署项目到服务器,可根据项目的实际情况对步骤进行适当调整,如有不正确的地方,请指正。

0条评论
0 / 1000
w****n
11文章数
0粉丝数
w****n
11 文章 | 0 粉丝
原创

前端项目部署脚本化

2023-11-29 02:19:23
18
0

一、安装zip工具

打包前,因为要将打包后的压缩文件上传到服务器,在执行zip命令时需要有插件支持。如果执行zip命令时,报zip command not found信息,解决方案如下:

  1. 下载zip-3.0-bin.zip和bzip2-1.0.5-bin.zip压缩包;
  2. 解压压缩包并把zip-3.0-bin.zip解压后的bin文件夹下的zip.exe文件和bzip2-1.0.5-bin.zip解压后的bin文件夹下的bzip2.dll文件统一放在本地git安装目录下(可在Git Bash命令行通过where git命令查看git安装目录);

二、脚本实现

实现步骤如下:

  1. 进入项目;
  2. 切换到要打包的分支,以master分支为例;
  3. 拉取最新代码;
  4. 执行打包命令;
  5. 将打包后的文件压缩;
  6. 将服务器原有dist文件进行备份;
  7. 将压缩文件上传至服务器对应nginx目录;
  8. 解压缩dist.zip文件;
  9. 重新启动nginx;
  10. 删除dist.zip文件;

具体的实现脚本(deploy_server.sh):

#!/bin/bash
# 进入项目目录
echo "1.enter to program"
cd e:program/XXX   // 此处根据实际情况编写项目目录
 
# 切换到master分支
echo "2. switch to master"
git checkout master
 
# 从git拉取最新代码
echo "3. pull latest code"
git pull
 
# 执行打包命令
echo "4. start pack"
npm run build  // 此处根据实际情况编写打包命令
 
# 压缩打包后的文件
echo "5. compress dist"
zip -r dist.zip ./dist/*
 
# 服务器IP
server_ip='XXX.XXX.XXX.XXX'  // 此处根据实际情况编写IP地址
 
# 创建备份文件
echo "6. backup dist"
ssh -p 22 root@"${server_ip}" "sudo mv /usr/share/nginx/html/dist /usr/share/nginx/html/dist.$(date +%Y%m%d%H%M%S)" // 此处根据实际情况编写dist存放目录,后面涉及到dist目录同理
 
# 将dist.zip迁移到dist目录
echo "7. zip to server"
scp -P 22 ./dist.zip root@"${server_ip}":/usr/share/nginx/html  
 
# 解压zip
echo "8. unzip dist"
ssh -p 22 root@"${server_ip}" "cd /usr/share/nginx/html && unzip dist.zip"
 
# 重新启动nginx
echo "9. restart nginx"
ssh -p 22 root@"${server_ip}" "systemctl restart nginx"
 
# 删除zip包
echo "10. delete zip"
ssh -p 22 root@"${server_ip}" "rm -rf /usr/share/nginx/html/dist.zip"

执行:

  1. 尽管脚本强制切换到master分支,最好在运行脚本前手动切换到master,效果更直观;
  2. 找到一个非工程代码的文件目录下,执行此脚本;
  3. 在Git Bash运行./deploy_server.sh执行脚本。

 

三、总结

本篇文章旨在帮助前端开发快速部署项目到服务器,可根据项目的实际情况对步骤进行适当调整,如有不正确的地方,请指正。

文章来自个人专栏
前端开发成长之路
11 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0