当前位置: 首页 > news >正文

前端项目部署 打包上线

如果拿到的项目没有 node_modules,要执行

npm i

安装所有的依赖

运行:

npm run serve

一、项目打包

我们开发用的脚手架其实就是一个微型服务器,用于:支撑开发环境、运行代理服务器等。

打包完的文件中不存在:.vue、.jsx、.less 等文件,而是:.html、css、js 等。

打包后的文件,不再借助脚手架运行,而是需要部署到服务器上运行。

打包前,请务必梳理好前端项目的 ajax 封装(请求前缀、代理规则等)。

打包:

npm run build

之后生成 dist / build 文件夹

打包完的文件,要部署到服务器上查看内容

二、本地服务器部署

server.js

// 引入 express
const express = require('express')// 配置端口号
const PORT = 8088// 创建一个 app 服务实例
const app = express()// 配置静态资源
app.use(express.static(__dirname + '/public'))// 绑定端口监听
app.listen(PORT, ()=>{console.log(`本地服务器启动成功,http://localhost:${PORT}`)
})

如果没有 node_modules,要执行

npm i

安装所有的依赖

运行服务器

nodemon server.js

把 dist 文件夹里的东西放到 server 里面的 public 文件夹里面

1. 刷新页面 404 问题

(1)改为 hash 路由模式(不推荐)#

(2)无法匹配后端路由时,返回 index.html

server.js 增加内容

app.get('*', (req,res)=>{res.sendFile(__dirname + '/public/index.html')
})

(3)connect-history-api-fallback 中间件

npm i connect-history-api-fallback

 server.js

// 引入 express
const express = require('express')
const history = require('connect-history-api-fallback')// 配置端口号
const PORT = 8088// 创建一个 app 服务实例
const app = express()app.use(history())// 配置静态资源
app.use(express.static(__dirname + '/public'))// 绑定端口监听
app.listen(PORT, ()=>{console.log(`本地服务器启动成功,http://localhost:${PORT}`)
})

使用 connect-history-api-fallback 可以让配置更灵活,比如 /login 临时不需要作为前端路由处理,就可以按照如下方法配置

app.use(history(verbose:false,rewrites:[{ from:/^\/login.*$/, to:(context) => context.parsedUrl.path },]
))

2. ajax 请求无法发送问题

(1)http-proxy-middleware

npm i http-proxy-middleware

server.js

// 引入 express
const express = require('express')
const history = require('connect-history-api-fallback')
const { createProxyMiddleware } = require('http-proxy-middleware')// 配置端口号
const PORT = 8088// 创建一个 app 服务实例
const app = express()app.use(history())// 配置静态资源
app.use(express.static(__dirname + '/public'))app.use('/dev',createProxyMiddleware({target: 'http://sph-h5-api.atguigu.cn',changeOrigin: true,pathRewrite: {'^/dev': ''}})
)// 绑定端口监听
app.listen(PORT, ()=>{console.log(`本地服务器启动成功,http://localhost:${PORT}`)
})

三、 nginx 服务器部署

 1. nginx 简介

nginx(发音为“engine-x”)是一款高性能的 HTTP 服务器和反向代理服务器,同时也是一个 IMAP / POP3 / SMTP 代理服务器。主要功能:

(1)反向代理

(2)负载均衡

(3)静态内容服务

(4)HTTP/2 支持

(5)SSL/TLS 支持

(6)高速缓存

2. nginx 配置代理练习

conf/nginx.conf

server {listen    8099;...location / {root  D:\dist;}
}

双击 nginx.exe

打开浏览器 http://localhost:8099

如需重启,在任务管理器结束项目,重新打开

3. nginx 部署前端项目

但是打开项目后依然存在之前遇到的两个问题:

(1)刷新页面 404 问题

(2)ajax 请求无法发送问题

conf/nginx.conf

server {listen    8099;...location / {root  D:\dist;index  index.html index.htm;try_files $uri $uri/ /index.html;  # 解决刷新 404}location /dev/ {# 设置代理目标proxy_pass http://sph-h5-api.atguigu.cn/;}
}

如果页面异常,清缓存重新打开

四、 云服务器部署

1. 注册云服务器

2. Xshell:命令

打开 - 新建 - 粘贴主机地址 - 连接

SSH 安全警告:接受并保存

SSH 用户名:root - 点击记住 - 确定

SSH 用户身份验证:输入密码

标签有绿色小点就是连接成功

或者命令行输入:(1)cd / (2)ls

3. Xftp:文件

打开 - 新建 

新建会话框属性:粘贴主机地址 

连接

SSH 用户名:root - 点击记住 - 确定

SSH 用户身份验证:输入密码 - 记住密码

标签有绿色小点就是连接成功

如果是 /root 文件夹 则没有东西,点击转换成 /

4. 把打包后的 dist 文件夹交给服务器 - Xftp

 放在 var 文件夹里

5. 跑起来 Xshell 

命令行输入 yum install nginx

6. 回到 Xftp 配置 nginx.conf

如果 /etc 里面有 nginx,则配置成功

打开 /etc/nginx/nginx.conf

server {...location / {root  /var/name;index  index.html index.htm;try_files $uri $uri/ /index.html;  # 解决刷新 404}location /dev/ {# 设置代理目标proxy_pass http://sph-h5-api.atguigu.cn/;}
}

6. Xshell 

命令行 service nginx start

7. 打开 http://49.232.141.241/home

现在是纯 ip 网址,可以在云服务器里面买域名

如果端口没打开,自行添加规则

相关文章:

  • Vue项目前后端交互大量数据的-之-前端优化方案
  • Java——设计模式(Design Pattern)
  • LINQ性能优化终极指南
  • 数据库中表的设计规范
  • S32K开发环境搭建详细教程(二、添加S32K3xx SDK)
  • 【读代码】BAGEL:统一多模态理解与生成的模型
  • python装饰器的简单理解
  • 【深度剖析】三一重工的数字化转型(下篇1)
  • 基于SamOutV8的序列生成模型实现与分析
  • 用本地大模型解析智能家居语音指令:构建一个离线可用的文本控制助手
  • 保姆式一步一步制作B端左侧菜单栏
  • 状态码··
  • 从零开始构建一个区块链应用:技术解析与实践指南
  • 【Fargo】razor框架调用mediasoup的发送和接收能力
  • 英语写作中“随着……的出现”with the advent of 的用法
  • 线性代数中的向量与矩阵:AI大模型的数学基石
  • 内存越界(Memory Out-of-Bounds)详解
  • SGlang 推理模型优化(PD架构分离)
  • Linux Shell编程(九)
  • Android12 launcher3修改App图标白边问题
  • 太原网站建设开发公司/广州市运营推广公司
  • 有没有只做软装方案收设计费的网站/如何联系百度人工客服
  • 中国城乡住房和城乡建设部网站首页/重庆网站seo外包
  • 网站建设好处zu97/搜索seo神器
  • wordpress模板大全/上海免费关键词排名优化
  • 类似聚划算的网站怎么建设/seo研究中心道一老师