【无标题】

基于PowerShell实现Vue前端项目自动化部署到Nginx服务器

在前端项目开发过程中,部署是一个重要环节。手动部署不仅繁琐,还容易出错。本文将分享如何使用PowerShell脚本实现Vue前端项目的自动化部署,涵盖项目构建、压缩、上传到服务器以及在服务器上解压缩并部署到Nginx的全流程。借助这个脚本,能大幅提升部署效率,减少人为错误。

一、脚本核心功能概述

本PowerShell脚本旨在简化Vue前端项目的部署流程。其核心功能包括:

  1. 项目构建:在本地环境中清理之前的构建产物,然后执行yarn build命令完成项目构建,并验证构建结果,确保生成了必要的文件,如index.html
  2. 文件压缩:将构建后的dist目录进行压缩,生成dist.zip文件。压缩过程中,会先创建临时目录,复制文件并确保路径使用正斜杠,再选择合适的压缩工具进行压缩,支持7-Zip和PowerShell自带的压缩命令。
  3. 服务器交互:利用plinkpscp工具,实现与远程服务器的连接、文件上传以及执行一系列远程命令。在连接服务器前,会先缓存服务器的主机密钥,保证后续交互安全。
  4. 服务器部署:在远程服务器上,依次执行切换目录、删除旧的部署目录、创建新目录、检查压缩文件、解压文件、验证解压结果、设置文件权限、检查Nginx配置、重启Nginx服务以及清理临时文件等操作,完成项目在Nginx服务器上的部署。

二、脚本关键代码解析

(一)环境设置与变量定义

# Force UTF-8 encoding, no BOM
$PSDefaultParameterValues['*:Encoding'] = 'utf8'
[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8
[System.Console]::InputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
# Set codepage to UTF-8
try {
   
    chcp 65001 | Out-Null
} catch {
   
    Write-Host "Warning: Unable to set console codepage to UTF-8"
}
$ErrorActionPreference = "Stop"
$projectPath = "D:\CursorProjects\ba0318"
$distPath = "$projectPath\dist"
$zipPath = "$projectPath\dist.zip"

这段代码设置了PowerShell的编码为UTF - 8,确保在处理文件和输出日志时不会出现编码问题。同时,定义了项目路径、构建输出目录路径和压缩文件路径等关键变量。

(二)读取配置文件

try {
   
    Write-Host "Reading configuration file..."
    $configContent = Get-Content -Path "$projectPath\deploy.config.json" -Raw
    $config = $configContent | ConvertFrom-Json
    # Validate configuration
    if ([string]::IsNullOrEmpty($config.remoteHost)) {
   
        throw "Remote host is empty in config file"
    }
    Write-Host "Config loaded - Remote Host: $($config.remoteHost)"
    
    $remoteHost = $config.remoteHost
    $remoteUser = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunfanleo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值