VUE学习:十四.项目部署

sadwind2024-02-29笔记223

前言

前端开发也需要懂一些基本部署知识,确认已发布,测试是否成功发布本次项目代码

  • 打包项目代码得到前端项目的包文件目录,一般是dist文件目录

    npm run build
    1

#1.nginx 配置

  • 前端代码一般是将打包后的文件放到 nginx 配置好的目录下面,通过 nginx 来部署的

  • nginx 常见的配置

    # nginx/conf/nginx.conf...
    location /[项目二级目录] {
      root D:/project/[项目名称]
      try_fiels $uri $uri/ /[打包目录]/index.html
      index index.html index.htm}...
    1
    2
    3
    4
    5
    6
    7
    8

#2.本地验证

注意

有时候部署比较敏感,如紧急上 uat 环境,为了防止出意外导致投诉(如测试)或者确定前端代码部署质量排查部署产生的问题,可以先在本地安装 nginx 模拟线上环境,校验前端打包后的代码是否是正常的,自己确定修改无误后再部署

  • 1.windows 环境中 下载 nginx (opens new window),然后在安装目录下解压

  • 2.在 Nginx 的目录下使用 cmd 命令行,启动之后,打开 http://localhost:80 就能看的效果

    start nginx           # 启动
    1
  • 3.将前端打包目录放到指定位置,本地重启 nginx,验证打包代码(在安装根目录下启用 cmd)

    nginx -s reload       # 重启
    1
  • 常见命令

    start nginx           # 启动nginx -s stop         # 快速停止(不保存相关信息)nginx -s quit         # 有序停止(保存相关信息)nginx -s reload       # 重启(修改配置文件后用这个)
    1
    2
    3
    4

#3.部署项目

本地代码检查没问题可以直接打包上线上测试环境

  • 方式一:直接上传本地打包后的代码到服务器(比较原始的方式)

    • 1.通过 ftp 远程连接xshell

      ssh root@  后边再加上你的服务器ip地址
      然后输入密码 就成功连接上了
      1
      2
    • 2.将 dist 目录下的打包文件传输到服务器指定目录(服务器上需先启动 nginx),重启 nginx

  • 方式二:vscode 安装 Remote-SSH 替代 xshell 传输

  • 方式三:通过相关工具部署流水线(genkins)

  • 方式四:通过相关工具部署流水线(gitlab)

#4.版本更新

注意

有时候部署后需要查看代码是否更新,作出相关动作(提示用户刷新页面)

  • 在 public 下建立文件,/version.json(打包时 webpack 向此文件写入打包信息)

    {
      "projectName": "xxx",
      "version": "xxx1.13",
      "date": "2021/12/19",
      "time": "123"}
    1
    2
    3
    4
    5
    6
  • 刷新页面

    // main.jssetTimeout(() => {
      axios.get("/version.json").then((res) => {
        if (res.data.time !== localStorage.time) {
          localStorage.time = res.data.time      message("项目有更新,10s后自动刷新页面")
        }
      })}, 10000)
    1
    2
    3
    4
    5
    6
    7
    8
    9

可能遇到的问题

linux 下有权限问题,如配置完成后访问出现 403,可以配置 SELINUX=disabled 解决

总结

通过对 vue 项目构建部署的了解,可以看到前端也需要学习一些构建部署知识,能在日常开发中轻松处理相关问题


relate content

VUE学习:三.VueCLI 配置

前言掌握一些项目中常见的 webpack 配置,能够从容应对一些开发场景问题#1.vue-cli 2.x#1.1 css 相关style-loader ( 处理 style 内联样式 )css-loa...

想自己做游戏一些准备

之前做的游戏资源网站,搜索引擎被K,收录几乎为零,几个广告账号又被封,访问量又不高的情况下,已无继续下去的必要了。一直有想自己做游戏的想法,因为没有美术和音乐的基础,一直没有去思考,最近倒是可以试试,...

FASTADMIN 个别页面不使用默认的layout(默认模板)

有的应用定义了默认模板layout,(protected $layout = 'default';)在方法实现时会自动加上定义的模板内容,而个别页面如弹窗我不想要页面头部和底部等&nb...

ICMS使用一些心得 经验

ICMS是一款小众的CMS建站程序,速度、使用都还不错,扩展也方便,可能使用太少,作者最近更新有点慢,文档太少,在使用过程中有很多问题得不到及时解决,主要是查不到什么资料,官方文档太简单。最近在学习S...

VUE学习:十一.Mock 数据

VUE学习:十一.Mock 数据

前言前后端同时开发的时候,后端接口数据没有出来,前端可以 mock 假数据,模拟开发,无需等待后的开发完成接口规范(成功,失败,状态码,安全) 和后端约定Postman 一款非常流行的 API 调试工...

C#全局键盘监听(Hook)的使用

一.为什么需要全局键盘监听?在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下快...

Post Reply    

◎Welcome to participate in the discussion.