Vue.js项目部署到服务器的详细步骤

下面来详细讲解“Vue.js项目部署到服务器的详细步骤”。

1. 前置条件

在进行 Vue.js 项目部署之前,需要在服务器上安装 Node.js 和 Git 工具。如果你的服务器已经安装过了,那么可以跳过此步骤。

安装 Node.js:

# 安装 Node.js
sudo apt-get update
sudo apt-get install nodejs

# 安装 Node.js 包管理工具 npm
sudo apt-get install npm

安装 Git:

# 安装 Git
sudo apt-get install git

2. 构建 Vue.js 项目

将 Vue.js 项目代码上传到服务器后,需要构建项目。构建项目会生成打包后的静态文件,对于 Vue.js 项目来说,打包后的文件通常位于 dist 目录下。

在项目根目录下运行以下命令构建项目:

npm install
npm run build

3. 部署 Vue.js 项目到服务器

构建完成后,将打包后的项目上传到服务器,具体上传方式可以使用 FTP 或者 SCP 等命令行工具上传,也可以使用一些 GUI 工具,例如 FileZilla 等。

上传完成后,将 dist 目录下的文件复制到服务器上的网站根目录下,这里以 /var/www/html 为例。

sudo cp -r /path/to/your/vue/project/dist/* /var/www/html/

4. 配置 Nginx

Nginx 是一个高性能的 Web 服务器,它可以用来代理静态和动态 HTTP/HTTPS 流量以及作为负载均衡器、反向代理和 HTTP 缓存等。

这里以在 Ubuntu 系统上安装 Nginx 为例,如果你已经安装了 Nginx 并且做好了相关配置,可以直接跳过此步骤。

# 安装 Nginx
sudo apt-get update
sudo apt-get install nginx

# 启动 Nginx
sudo systemctl start nginx

# 确认 Nginx 服务已经正确启动
sudo systemctl status nginx

为了让 Nginx 转发请求到我们的 Vue.js 应用,我们需要打开 Nginx 的配置文件 default

sudo nano /etc/nginx/sites-available/default

修改 default 文件,配置反向代理到 Vue.js 应用的部署目录:

server {
  listen 80;
  server_name yourserver.com;

  root /var/www/html;
  index index.html;

  location / {
    try_files $uri $uri/ /index.html;
  }

  # 反向代理到 Vue.js 应用
  location /api/ {
    proxy_pass http://localhost:3000/; # Vue.js 应用部署的端口号
    proxy_set_header Host $proxy_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

保存并退出。

检查 Nginx 配置是否有误,如果无误则启动 Nginx 服务:

sudo nginx -t
sudo systemctl restart nginx

5. 启动 Vue.js 应用

如果 Vue.js 应用是一个 SPA(单页应用)的话,需要在服务器上启动一个 Node.js 服务器,在该服务器上运行 Vue.js 应用。

例如,我们在 Vue.js 应用的根目录下创建了一个文件 app.js,该文件用于启动 Vue.js 应用:

const express = require('express')
const app = express()

// 静态文件服务
app.use(express.static('dist'))

// 所有请求都返回 index.html
app.get('*', (req, res) => {
  res.sendFile(__dirname + '/dist/index.html')
})

// 启动服务器
app.listen(3000, () => {
  console.log('Vue.js app is running at http://localhost:3000')
})

通过使用 SSH 连接到服务器,我们可以在服务器上启动该文件:

node app.js

运行后,我们可以在浏览器中访问该服务器的公网地址,并检查 Vue.js 应用是否已经部署成功。

示例说明

示例 1:通过 FTP 上传 Vue.js 项目

假设你有一个 Vue.js 项目,项目文件夹名为 my-project,在本地通过 FTP 软件将 my-project 文件夹上传到了服务器上的 /var/www/html 目录下。

在服务器上运行以下命令构建项目:

cd /var/www/html/my-project
npm install
npm run build

构建完成后,将 my-project 下的 dist 目录下的文件复制到服务器上的网站根目录下 /var/www/html/

sudo cp -r /var/www/html/my-project/dist/* /var/www/html/

然后按照上述步骤进行配置和启动即可。

示例 2:使用 PM2 管理 Vue.js 应用进程

假设你的 Vue.js 应用已经部署到服务器上,并且已经启动了 Node.js 服务器为该应用提供服务,我们可以使用 PM2 来管理应用进程。

首先,使用 SSH 连接到服务器上,安装 PM2:

sudo npm install pm2 -g

然后,在 Vue.js 应用的根目录下运行以下命令启动应用:

pm2 start app.js --name my-vue-app

这样,我们就可以使用 PM2 来管理 Vue.js 应用的进程了,例如重启进程等操作:

# 重启 Vue.js 应用的进程
pm2 restart my-vue-app

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue.js项目部署到服务器的详细步骤 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • Node.js实现登录注册功能

    下面我将详细讲解“Node.js实现登录注册功能”的完整攻略,包含以下几个步骤: 安装Node.js和相关依赖 创建项目文件夹并初始化,安装必要的依赖 编写前端页面 编写后端接口 配置数据库连接 实现注册功能 实现登录功能 使用Session存储登录状态 下面我将详细讲解每一步的具体实现细节。 1. 安装Node.js和相关依赖 首先,我们需要安装Node.…

    node js 2023年6月8日
    00
  • js技巧收集(200多个) 超强推荐第2/2页

    “js技巧收集(200多个) 超强推荐第2/2页”是一篇涵盖了200多个JS技巧的文章。该文分成了两个部分,第1页介绍了基础的JavaScript技巧,第2页则更加深入,介绍了一些高级技巧。本文将详细讲解第2页中的技巧,包括技巧的解释、使用场景和示例说明,具体如下: 技巧1:让文本框高度跟随内容自适应 当我们的文本框中输入了大量内容时,如果文本框高度不随内容…

    node js 2023年6月8日
    00
  • nodejs如何获取时间戳与时间差

    获取时间戳可以使用JavaScript内置的Date对象。该对象的getTime()方法可以用来获取当前时间距离1970年1月1日00:00:00 UTC的毫秒数,也就是时间戳。在Node.js环境中使用Date.now()方法可以快捷地获取当前时间戳。以下是一个获取当前时间戳的示例代码: const timestamp = Date.now(); cons…

    node js 2023年6月8日
    00
  • express框架中使用jwt实现验证的方法

    Express框架是一款快速、开放、极简的Web应用程序开发框架,而JWT(JSON Web Token)是一种用于身份验证的标准,它使用JSON作为数据载体,并使用数字签名保证数据在传输过程中不被篡改。在Express框架中使用JWT来实现验证,可以有效提升Web应用程序的安全性。下面是详细的攻略: 1. 安装jsonwebtoken包 使用npm安装js…

    node js 2023年6月8日
    00
  • Nodejs高扩展性的模板引擎 functmpl简介

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,是一个使用非阻塞和事件驱动 I/O模型的服务器端 JavaScript 环境。但是Node.js 自身并不具备模板引擎功能,于是出现了大量的第三方模板引擎,其中 functmpl 就是一款高扩展性的模板引擎。 什么是 functmpl functmpl 是一个轻量级的 Ja…

    node js 2023年6月8日
    00
  • 详解Nodejs之npm&package.json

    详解 Node.js 之 npm & package.json 的攻略如下: 什么是 npm? npm 是 Node.js 的包管理器,它使 Node.js 社区中的开发者可以发布、共享和重用代码。 什么是 package.json? package.json 是一个 JSON 格式的文本文件,其中包含了项目的元数据(如:名称、版本、许可证等)、依赖…

    node js 2023年6月8日
    00
  • Nodejs进阶:基于express+multer的文件上传实例

    下面我将介绍一下“Nodejs进阶:基于express+multer的文件上传实例”的完整攻略。 简介 在Web应用程序开发中,文件上传是一个非常常见的需求。Node.js 提供了强大的文件系统模块,可以轻松读取和写入文件。而 Express 框架则提供了处理 HTTP 请求和响应的能力。 Multer 是一款 Node.js 中用于处理 multipart…

    node js 2023年6月8日
    00
  • Javascript中Promise的四种常用方法总结

    当谈到异步编程时,Promise是JavaScript中一个非常重要的概念。Promise是一种异步处理模式,它提供了对异步操作的处理方式以及更好的错误处理。在JavaScript中,我们通常使用Promise在异步代码中处理回调,以便代码更具可读性和易于管理。 在本文中,我将介绍Javascript中Promise的四种常用方法,并提供一些示例说明其用例。…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部