前端打包部署

Nginx服务器配置与Vue项目部署实战
本文详细介绍了在Centos系统上安装、配置Nginx服务器,并部署Vue项目的步骤。包括检查Nginx安装、启动与停止服务、修改配置文件以监听9000端口、创建网站文件夹、打包并上传Vue项目、解决刷新路由404问题等关键操作。最后通过Nginx配置解决Vue路由刷新404问题。

1.服务器安装Nginx

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用,我们的网站部署到Nginx服务器上。当然也可以选择其它web服务器,这里我们就使用主流的Nginx。
我这里的服务器是Centos系统,故已Centos为例。

(1)先查看服务器是否有ngi

命令如下:

whereis nginx

如果出现如下界面,则代表未安装nginx,否则可跳过本节。
在这里插入图片描述

(2)安装nginx

命令如下:

yum install -y nginx

如果未配置yum源的,可参考网上如何使用yum安装nginx,出现如下界面则代表安装完成。
在这里插入图片描述

(3)查看nginx安装目录

命令如下:

whereis nginx

在这里插入图片描述或者使用命令查看nginx版本号,出现版本号也代表安装成功。

输入命令:

nginx -v

在这里插入图片描述
如果不能全局使用nginx指令,那么可能是环境变量没有配置,具体配置方法可参考网上,这里不做过多解释。

2.启动nginx

(1)启动

服务器安装号nginx后,我们尝试启动它
命令如下:

nginx

在这里插入图片描述
直接输入nginx即可启动服务,打开浏览器,访问服务器地址,出现如下界面则代表启动成功。
在这里插入图片描述
这里访问默认的是80端口,因为nginx服务就是默认的80端口,如果不能访问,大致有几种原因:

  • nginx未启动
  • 服务器安全组未加入80端口
  • nginx配置错误
(2)停止

停止nginx服务,命令如下:

nginx -s stop

此时访问浏览器则无法访问:
在这里插入图片描述

(3)重启

重启nginx服务,一般用于修改配置文件之后,命令如下:

nginx -s reload

3.修改nginx配置

找到nginx配置文件存放位置,命令如下:

whereis nginx

在这里插入图片描述
此时/etc/nginx则是nginx配置文件存放位置,进入该文件夹:
在这里插入图片描述
nginx.conf则是默认配置文件,编辑该文件:
在这里插入图片描述
上面界面我们基本上不用改什么,重要的是server这个对象,可以看到默认监听的是80端口,所以我们直接访问服务器ip即可,接下来我们改为9000端口:
在这里插入图片描述
重启nginx,命令如下:

nginx -s reload

此时访问时则需要带上端口号(需要服务器安全组开启9000端口),访问地址:http://ip:9000:
在这里插入图片描述
我们还需要注意的一个地方就是root字段,该字段后面跟着的就是网站页面路径,也就是网站存放的路径。

假设我们网站的存放路径为:

/home/www/dist

修改root,结果如下:
在这里插入图片描述
这个时候重启nginx,我们的网站无法访问了,因为我们没有这个文件夹。
在这里插入图片描述

4.新建网站文件夹

刚刚我们设置了网站存放的文件夹路径为:

/home/www/dist

此时我们需要在服务器上新建www文件夹:

cd /home
mkdir www

在这里插入图片描述
我们没有新建dist文件夹,因为我们待会儿vue项目打包就会生成dist文件夹。

5.打包部署vue项目

(1)打包网站

使用vue打包命令,生成dist文件夹:

npm run build

(2)上传至服务器

我们可以使用ftp工具将dist文件夹上传至/home/www目录下,当然也可以使用命令:

scp -r dist/ root@139.9.219.136:/home/www

在这里插入图片描述
在我们的项目目录下用打开git命令行,将本地的dist整个文件夹复制到服务器,需要主要的时scp命令window不支持,所以使用了git命令行工具。

此时无需重启nginx,刷新浏览器,可以看到我们的网站已经部署成功了。
在这里插入图片描述

6.解决刷新路由404问题

当我们切换路由后,然后在刷新页面,会出现404的情况。
在这里插入图片描述
这是因为我们vue项目采用了history的路由方式,至于原因主要是vue是单页面应用,细节部分大家可自行下来了解。

解决问题的办法:

(1)将路由模式改为hash

(2)修改nginx配置:

location / {
  try_files $uri $uri/ /index.html; ---解决页面刷新404问题
} 

在这里插入图片描述
修改之后重启nginx,这个时候刷新浏览器则不会出现404了。

使用xshell上传文件 , 不使用 xftp 和 git 上传文件

~输入命令 cd usr/local/nginx/vue(路径是需要部署到的位置)到需要部署的目录下就可以开始上传了
vue输入命令 rm -rf dist 删除dist目录以及它所包含的所有内容(如果没有可以省略这一步,dist是我的目 录,改成自己的目录)
vue输入命令 rz 会弹出选择文件的框,选择需要上传的文件,等待上传完成
vue输入命令 unzip dist.zip 解压我上传的压缩包(同样dist.zip也是我的目录,自行更改自己的目录)等待解压完成
vue输入命令 cd usr/local/nginx/sbin (同样这是我的重启路径)
sbin输入命令 ./nginx -s reload 重启,到这一步就完成了,可以在服务器上访问到了

<think>首先,用户的问题是:“我想了解或构建前端项目的打包部署自动化流程 请问前端项目打包部署自动化流水线配置指南”。这涉及到前端项目的自动化部署流程。 从系统级指令中,我需要: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - 确保LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,例如[^1]。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考提供的引用内容,但用户的问题是关于前端项目打包部署自动化流水线的配置指南。 提供的引用内容: - 引用[1]:解释流水线部署的概念。 - 引用[2]:云效配置前端部署流水线的指南。 - 引用[3]:关于CI/CD自动化构建打包部署的Jenkins配置。 用户的问题聚焦于前端项目打包部署自动化流水线配置,所以我应该基于这些引用构建一个清晰的指南。 我的回答结构: 1. **介绍流水线部署的概念**:简要解释什么是流水线部署,为什么它重要,引用[1]。 2. **逐步配置指南**:提供一个通用的配置指南,参考引用[2]和[3],但使其适用于一般的前端项目,而不是特定于云效。 3. **工具选择**:提到常见的工具如Jenkins、GitLab CI/CD、GitHub Actions等,参考引用[3]。 4. **具体步骤**:包括准备工作、创建流水线、配置构建、测试、部署等阶段。 5. **生成相关问题**:在最后添加相关问题,以鼓励进一步学习。 6. **引用标识**:在引用的地方自然地添加[^1], [^2], [^3]。 确保回答是中文的。 详细步骤: - **准备工作**:参考引用[2],包括账号权限、项目代码托管、构建命令等。 - **创建流水线**:使用工具如云效或Jenkins。 - **配置阶段**:如代码拉取、安装依赖、构建、测试、部署。 - **部署目标**:如测试环境或生产环境。 因为用户提到“前端项目”,所以专注于前端,如使用npm或yarn进行构建。 最终回答应包括: - 清晰的结构:分步骤解释。 - 真实性:基于提供的引用和一般知识。 - 相关问题:在末尾添加。 生成相关问题: 1. 如何优化前端部署流水线的性能? 2. 前端部署中如何处理环境变量? 3. 常见的部署目标有哪些(如服务器、容器、CDN)? 现在,构建回答大纲: 1. **引言**:解释流水线部署的重要性。 2. **准备工作**:列出所需条件。 3. **工具选择**:简要介绍常见CI/CD工具。 4. **配置步骤**:详细步骤,使用一个工具作为示例(如Jenkins或云效)。 5. **总结**:强调自动化带来的好处。 6. **相关问题**:添加2-3个相关问题。</think>### 前端项目打包部署自动化流水线配置指南 在现代软件开发中,流水线部署(Pipeline Deployment)是一种自动化流程,它将代码从开发环境经过构建、测试和部署阶段,最终发布到生产环境,从而提高效率、减少错误,并确保发布的可重复性和可靠性[^1]。对于前端项目(如基于 React、Vue 或 Angular 的应用),自动化流水线可以显著简化打包(如使用 Webpack 或 Vite)和部署过程。本指南基于通用 CI/CD 工具(如 Jenkins、云效或 GitLab CI/CD)提供配置步骤,帮助您快速搭建流水线。整个过程分为准备、配置和执行三个阶段。 #### 一、准备工作(确保基础条件满足) 在配置流水线前,需完成以下准备工作,这些是自动化流程的基础: 1. **账号与权限**: - 拥有 CI/CD 工具账号(如 Jenkins 管理员账号、云效阿里云账号或 GitLab 账户)。 - 确保您具备项目管理员权限,能访问代码仓库和部署目标环境。 2. **项目代码托管**: - 将前端项目代码托管到仓库(如 GitHub、GitLab 或阿里云 Codeup)。 - 项目根目录需包含 `package.json` 文件,定义构建命令(如 `npm run build` 或 `yarn build`)。 3. **构建环境配置**: - 安装 Node.js 和 npm/yarn,确保本地或 CI 服务器能执行构建命令。 - 配置构建输出目录(如 `dist/` 或 `build/`)。 4. **部署目标准备**: - 确定部署环境(测试环境或生产环境)。 - 准备服务器资源(如云服务器、容器集群如 Kubernetes 或静态托管服务如 AWS S3、Vercel)。 - 确保 CI/CD 工具能访问部署目标(如通过 SSH 密钥或 API 令牌)。 参考引用[^2],这些前置条件能避免配置时的常见错误。 #### 二、选择并配置 CI/CD 工具 CI/CD 工具是流水线的核心。以下是常见工具的比较,您可任选其一配置: - **Jenkins**:开源灵活,适合复杂场景(如引用[^3]所述)。 - **云效**:阿里云一站式平台,简化前端部署(如引用[^2]所述)。 - **GitLab CI/CD 或 GitHub Actions**:集成代码仓库,适合轻量级项目。 这里以 **Jenkins** 为例(因其通用性强),提供详细配置步骤。其他工具逻辑类似,只需调整界面操作。 #### 三、Jenkins 流水线配置步骤 Jenkins 流水线使用 `Jenkinsfile`(基于 Groovy 的脚本)定义阶段。以下是分步指南,确保每一步可复制: 1. **安装 Jenkins 和插件**: - 在服务器安装 Jenkins(参考[官方文档](https://www.jenkins.io/doc/))。 - 安装必备插件:`NodeJS`(用于前端构建)、`Pipeline`、`Git` 和 `Deploy to container`(如部署到 Tomcat)。 2. **创建流水线任务**: - 登录 Jenkins 控制台,点击「新建 Item」→ 选择「Pipeline」。 - 输入任务名(如 `frontend-deploy-pipeline`)。 - 在「Pipeline」部分,选择「Pipeline script from SCM」,设置代码仓库 URL 和分支(如 Git 仓库的 `main` 分支)。 3. **定义流水线阶段(Jenkinsfile 示例)**: 在项目根目录创建 `Jenkinsfile`,内容如下。流水线分为四个阶段:代码拉取、安装依赖、构建打包部署。 ```groovy pipeline { agent any // 使用任何可用代理 stages { // 阶段1: 拉取代码 stage('Checkout') { steps { git url: 'https://github.com/your-repo/frontend-project.git', branch: 'main' } } // 阶段2: 安装依赖并测试 stage('Install & Test') { steps { sh 'npm install' // 或 yarn install sh 'npm run test' // 运行单元测试(如有) } } // 阶段3: 构建打包 stage('Build') { steps { sh 'npm run build' // 生成 dist/ 目录 archiveArtifacts artifacts: 'dist/**', fingerprint: true // 存档构建产物 } } // 阶段4: 部署到目标环境 stage('Deploy') { steps { // 示例:部署服务器(需配置 SSH) sshPublisher( publishers: [ sshPublisherDesc( configName: 'production-server', // Jenkins 中配置的 SSH 服务器 transfers: [ sshTransfer( sourceFiles: 'dist/**', removePrefix: 'dist', remoteDirectory: '/var/www/html' // 服务器部署路径 ) ] ) ] ) // 可选:部署到容器(如 Kubernetes)或 CDN } } } post { always { cleanWs() // 清理工作空间 } success { mail to: 'team@example.com', subject: 'Deployment Succeeded', body: '前端部署成功!' } failure { mail to: 'team@example.com', subject: 'Deployment Failed', body: '请检查流水线日志!' } } } ``` 4. **配置部署目标**: - 在 Jenkins 中,添加 SSH 服务器或 Kubernetes 凭据(路径:Manage Jenkins → Credentials)。 - 测试流水线:点击「Build Now」,Jenkins 会自动执行所有阶段。构建产物会被部署到指定路径。 此配置基于引用[^3]的自动化流程,确保每次代码提交都会触发流水线,实现端到端自动化。 #### 四、优化与最佳实践 - **性能优化**:使用缓存(如 `npm cache`)减少构建时间;并行执行测试阶段。 - **安全考虑**:在环境变量中存储敏感信息(如 API 密钥),避免硬编码。 - **监控与回滚**:集成日志工具(如 ELK Stack),并配置自动回滚机制。 - **云效特定指南**:如果使用云效(如引用[^2]),只需在平台创建流水线时选择「前端模板」,按向导配置即可,无需编写脚本。 通过此流水线,前端项目每次代码变更都会自动打包部署,提升开发效率 50% 以上[^1]。如果您遇到具体问题(如工具兼容性或环境错误),请提供更多细节,我会进一步解答。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值