vue项目初始化和部署

目录

1. 技术简介... 2

2. 安装Node.js. 3

3. 全局安装Vue CLI (脚手架工具) 5

4. 创建一个新的Vue项目... 6

5. 在阿里云虚拟机安装和配置Nginx. 9

6. 将Vue项目打包部署到Nginx下... 14

7. 访问部署的项目... 14

1. 技术简介

Vue.js(通常简称为Vue)是一个用于构建用户界面的现代JavaScript框架。它是由尤雨溪(Evan You)在2014年创建的,并于同年首次发布。Vue被设计为易于学习、灵活且高效,使开发者可以快速构建交互性强、响应式的单页面应用(SPA)以及动态Web界面。

主要特点:

  1. 响应式数据绑定:Vue使用了响应式的数据绑定机制,当数据发生变化时,相关的视图会自动更新,使得开发者不需要手动操作DOM
  2. 组件化开发:Vue采用了组件化的开发方式,将应用拆分为多个组件,每个组件都有自己的状态和视图,可以重用和组合,使得应用的开发和维护更加简单和高效。
  3. 虚拟DOM:Vue通过虚拟DOM机制,将对DOM的操作转化为对虚拟DOM的操作,然后将虚拟DOM与真实DOM进行比对,最终只更新发生变化的部分,从而提高性能。
  4. 简洁优雅:Vue的API设计简洁明了,学习曲线较为平缓,易于上手。同时,Vue也提供了丰富的功能和扩展性,满足了各种规模的项目需求。
  5. 社区支持:Vue拥有一个庞大而活跃的社区,提供了大量的插件、工具和解决方案,帮助开发者解决各种问题,并不断推动Vue生态系统的发展。

应用场景:

Vue适用于构建各种类型的Web应用,包括单页面应用(SPA)、多页面应用(MPA)、移动应用、桌面应用等。它广泛应用于各行各业的项目中,包括企业级应用、个人项目、开源项目等。

Node.js:

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它可以用于构建高性能的网络应用程序,特别是服务器端应用程序。Node.js使用事件驱动、非阻塞I/O模型,使得它非常适合构建实时应用程序、API和服务端渲染的网页。

在Node.js中,你可以使用JavaScript语言编写服务器端的代码,处理HTTP请求、数据库操作、文件操作等。Node.js提供了丰富的模块和库,使得开发者可以轻松构建各种类型的后端应用。

Vue.js与Node.js之间的关系:

  1. 前后端分离开发: 在现代Web开发中,通常采用前后端分离的架构。Vue.js用于构建前端用户界面,而Node.js用于构建后端服务器和API。Vue.js发送HTTP请求到Node.js后端,后端处理请求并返回数据,前端再将数据渲染到页面上。
  2. 全栈开发: 有些开发者同时具备前端和后端开发的能力,他们可以在同一个项目中使用Vue.js和Node.js。例如,使用Vue.js构建前端界面,同时使用Node.js构建后端服务和API,这样可以更好地协同开发和部署。
  3. 构建SSR(服务器端渲染)应用: Vue.js和Node.js也可以一起用于构建服务器端渲染(SSR)的应用。Node.js作为后端服务器,用于渲染Vue组件并返回已渲染的HTML页面给客户端,这种方式可以提高应用的首屏加载速度和SEO优化。

阿里云虚拟机(ECS):

阿里云虚拟机,也称为Elastic Compute Service(ECS),是阿里云提供的一种弹性计算服务,它可以让你在云端轻松创建和管理虚拟机实例,以运行各种类型的应用程序。

主要特点:

  1. 弹性和可扩展性:你可以根据实际需求随时增加或减少虚拟机实例的数量,以应对流量的变化和应用的需求。
  2. 灵活的配置选项:阿里云虚拟机提供了各种不同类型和规格的实例供选择,以满足不同应用场景的需求。你可以选择CPU、内存、存储等配置来配置虚拟机实例。
  3. 安全可靠:阿里云虚拟机提供了安全加固、网络隔离、数据加密等安全功能,保障你的应用数据的安全和隐私。
  4. 弹性网络:你可以灵活配置网络规则、访问控制和安全组等网络设置,以确保你的虚拟机实例能够安全、高效地与其他资源通信。
  5. 全球部署:阿里云虚拟机支持全球范围内的多个地域和可用区,你可以根据用户分布和应用需求选择合适的地域来部署虚拟机实例,提供更快的访问速度和更稳定的服务。

Nginx

Nginx是一个高性能的开源HTTP和反向代理服务器,也是一个通用的TCP/UDP代理服务器。它被设计用来处理高并发的网络流量,并提供了许多高级功能和配置选项,使其成为构建可靠、安全和高效的Web服务的理想选择。

主要特点:

  1. 高性能:Nginx采用了事件驱动、异步非阻塞的架构,能够高效处理大量并发请求,适用于高负载的Web服务场景。
  2. 反向代理:Nginx可以作为反向代理服务器,接收客户端的请求并转发到后端的应用服务器,提供负载均衡、缓存、SSL终端等功能,从而提高网站的性能和可靠性。
  3. 静态文件服务:Nginx可以直接提供静态文件的服务,无需转发请求到应用服务器,加快了静态资源的访问速度。
  4. 高度可定制性:Nginx提供了丰富的配置选项和模块化的架构,使得用户可以根据自己的需求灵活定制和扩展服务器功能。
  5. 负载均衡:Nginx支持基于轮询、IP哈希、最少连接等算法的负载均衡,可以将请求分发到多个后端服务器上,提高系统的稳定性和可用性。
  6. 动态模块加载:Nginx支持动态模块加载,用户可以根据需要动态加载或卸载模块,而无需重新编译和部署Nginx服务器。
  7. 高级的安全功能:Nginx提供了许多安全功能,如访问控制、防盗链、DDoS防护等,可以保护Web服务器免受各种网络攻击。

2. 安装Node.js

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用于构建服务器端应用程序。

步骤:

  1. 访问Node.js官网: 打开浏览器并访问Node.js官网。

  1. 下载安装程序: 根据你的操作系统选择适用的安装程序。一般情况下,Node.js提供了适用于Windows、macOS和Linux的安装程序。选择与你操作系统相匹配的版本,并点击下载。

在这里我根据自己电脑的情况选择在winodws下的64位安装包

这里的下载过程一般会比较慢,需要耐心等待,也可以选择通过其他方式下载vue.js的安装包,但需要注意其安全性。

  1. 运行安装程序: 下载完成后,运行安装程序。在Windows上,你将看到一个安装向导;在macOS上,你将看到一个.pkg文件;在Linux上,你可能需要使用包管理器(如apt或yum)进行安装。

  1. 按照提示安装: 安装过程中,你可能需要接受许可协议、选择安装路径等。根据向导的提示逐步完成安装过程。
  2. 验证安装: 安装完成后,打开命令行终端(Windows用户可以使用PowerShell或命令提示符),输入以下命令来验证Node.js和npm(Node.js包管理器)是否成功安装:

node -v npm -v

如果成功安装,将会显示Node.js和npm的版本号。

3. 全局安装Vue CLI (脚手架工具)

Vue CLI是Vue.js的官方脚手架工具,用于快速搭建Vue.js项目。

步骤:

  1. 打开命令行/终端: 打开命令行终端。

  1. 执行全局安装命令: 在命令行中输入以下命令,以全局安装Vue CLI:

npm install -g @vue/cli

这会将Vue CLI安装到全局环境中,使其可以在任何目录下使用。

  1. 等待安装完成: 安装过程可能需要一些时间,取决于你的网络连接速度和计算机性能。

当出现added等等消息的时候就是已经安装好了

  1. 验证安装: 安装完成后,你可以输入以下命令来验证Vue CLI是否成功安装:

vue --version

如果成功安装,将会显示Vue CLI的版本号。

4. 创建一个新的Vue项目

使用Vue CLI可以快速创建一个新的Vue.js项目。

步骤:

  1. 执行创建命令: 在命令行中执行以下命令来创建新的Vue项目:

vue create my-vue-app

其中,my-vue-app是你想要创建的项目名称,你可以根据实际情况修改。

  1. 选择配置选项: 执行命令后,Vue CLI会提示你选择一些配置选项。你可以使用上下箭头键来浏览选项,并使用回车键来选择。通常,你可以选择默认配置,但也可以手动选择特性和插件。

这个警告是因为你正在使用的Node.js版本中的"punycode"模块已经被弃用了。你可以选择使用一个"用户地"的替代方案来替代它。不过,这个警告不会影响你创建Vue应用程序。

至于npm registry连接速度较慢的提示,这是因为你当前连接的npm registry可能速度较慢。提示建议你切换到一个更快的镜像站点来加快安装速度。通常情况下,使用提供了更快速度的镜像站点是一个好主意。

如果你愿意切换到更快的npm registry镜像,你可以按照提示输入"Y",然后按下回车。这样npm将使用提供更快速度的镜像站点来安装依赖。如果你不想切换,可以输入"N",然后按下回车。

所以,你可以根据你的偏好选择"Y"或者"N"来继续。

在这里,Vue CLI 提供了几个预设选项供你选择,以便快速设置你的 Vue 项目。以下是每个选项的简要说明:

  1. Default ([Vue 3] babel, eslint):
    • 这是默认的预设选项,使用 Vue 3 版本。它包含了 Babel 和 ESLint 插件,用于将 Vue 代码编译成向后兼容的 JavaScript 代码,并进行代码风格检查。
  2. Default ([Vue 2] babel, eslint):
    • 同样是默认的预设选项,但使用的是 Vue 2 版本。它也包含了 Babel 和 ESLint 插件,用于编译和检查 Vue 2 代码。
  3. Default (Vue 3) Manually select features:
    • 与第一个选项类似,但提供了手动选择功能的选项。这使你可以在下一步中手动选择你想要的功能和插件。

你可以使用键盘的上下箭头键选择你想要的预设选项,然后按下回车键确认选择。根据你的选择,Vue CLI 将会为你创建一个相应配置的 Vue 项目。

完成选择之后就会开始安装。

  1. 等待项目创建: 选择完配置选项后,Vue CLI会开始创建项目并安装依赖。这可能需要一些时间,取决于你的网络连接速度和计算机性能。

现在我们的第一个vue项目成功的安装好了。

这就是咱们第一个vue项目的结构。

5. 在阿里云虚拟机安装和配置Nginx

Nginx是一个高性能的HTTP和反向代理服务器,用于将请求转发到后端服务器或处理静态资源。

首先,我们需要先在阿里云平台上拥有一台虚拟机。

第一步,登录阿里云官网

选择免费试用,点击第一个云服务器ECS,立即试用

这一步需要进行身份验证,在这里我选择个人验证。

点击授权之后使用支付宝扫码登录即可。

之后再次点击试用,就可以开始配置界面了。

这里我选择了2核4G,ubuntu操作系统,

之后点击立即试用即可,需要等待一段时间。

成功!

之后登录到虚拟机,更新包列表: 执行以下命令来更新系统的包列表,以获取最新的软件信息:

sudo apt update

  1. 安装Nginx: 执行以下命令来安装Nginx:

sudo apt install nginx

  1. 验证安装: 安装完成后,Nginx会自动启动。你可以使用以下命令检查其状态:

sudo systemctl status nginx

如果Nginx正在运行,状态将显示为active(运行)。

  1. 配置Nginx: Nginx的主要配置文件通常位于/etc/nginx/nginx.conf,而服务器块(用于定义网站配置)通常位于/etc/nginx/sites-available/。你需要编辑这些文件来配置Nginx以服务你的Vue应用。

6. 将Vue项目打包部署到Nginx下

Vue CLI提供了一个命令来构建生产环境可部署的静态文件。

步骤:

  1. 进入项目目录: 打开命令行,进入你的Vue项目根目录。
  2. 执行构建命令: 在命令行中执行以下命令来构建项目:

npm run build

这会在项目根目录的/dist目录下生成一个打包好的静态文件。

  1. 查看生成文件: 打开/dist目录,你会看到生成的静态文件。这些文件包含了你的Vue应用的所有资源,包括HTML、CSS、JavaScript等。

7. 访问部署的项目

最后一步是将打包生成的静态文件部署到Nginx服务器上,并通过浏览器访问你的网站。

步骤:

  1. 复制静态文件: 将/dist目录下的所有文件复制到Nginx配置的静态文件目录,通常是/var/www/html/。你可以使用以下命令来复制文件:

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

这里为了方便我使用了MobaXterm来连接阿里云虚拟机进行操作,将打包好的dist文件夹复制到当前目录下,之后使用命令即可,之后我们应该可以成功访问我们的vue项目了。

  1. 访问网站: 打开一个浏览器,输入你的阿里云虚拟机的IP地址或域名,即可访问你部署的Vue项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/300449.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【亲测有效】微信公众号设置菜单栏显示,未开启自定义菜单,微信公众平台自定义菜单接口开发

微信公众平台自定义菜单接口开发 问题:运营人员在设置微信公众号设置菜单栏显示,未开启自定义菜单解决方案(微信公众平台自定义菜单接口开发):自定义菜单-创建接口请求链接完整代码第一步:在WeChat类里添加代码情况一:没有WeChat类情况,如果已有请看情况二情况二:已有…

以诚待人,用心做事,做到最好,追求更好

无数个日日夜夜,终于换来了这样一份努力的证明。 2023年,收获满满,前一阵子拿到了证书,忘记拍照了,今天抽空记录一下 收获!又得到一份肯定,这份荣誉证书将伴随我一直为了进步而奋斗&#xff1a…

electron 打不同环境的包

我用的打包工具: electron-builder 1、在package.json 文件的同级下创建2个js文件 electron-builder-test.config.js electron-builder.config.js electron-builder-test.config.js const basejson require(./electron-builder.config.js); module.exports {extraMetada…

CSS面试题常用知识总结day03

大家好我是没钱的君子下流坯,用自己的话解释自己的知识 前端行业下坡路,甚至可说前端已死,我还想在前段行业在干下去,所以从新开始储备自己的知识。 从CSS——>Javascript——>VUE2——>Vuex、VueRouter、webpack——>…

基于Spring Boot的旅游管理系统设计与实现

基于Spring Boot的旅游管理系统设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 旅游方案,用户通过旅游方案可以查看方案编号…

python 04字典映射

1.创建字典 (1)通过自己的输入创建字典 字典用大括号,至此,小括号( )表示元组,中括号[ ]表示列表,大括号{ }表示字典,python中最常用的三种数据结构就全了 (2)通过其他…

书生·浦语大模型实战营 | 第2次学习笔记

前言 书生浦语大模型应用实战营 第二期正在开营,欢迎大家来学习。(参与链接:课程升级,算力免费,书生浦语实战营第二期学员招募|活动预告https://mp.weixin.qq.com/s/YYSr3re6IduLJCAh-jgZqg) …

git上传到本地仓库

摘要:本地初始化init仓库,进行pull和push;好处是便于利用存储设备进行git备份 git init --bare test.git 随便到一个空的目录下git clone 然后使用git上传 把git仓库删除之后再clone一次验证一下是否上传成功: 如果在ubantu上面没…

leetcode.707. 设计链表

题目 题意: 在链表类中实现这些功能: get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。 addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的…

Redis安装说明2

Redis安装说明 1.3.2.指定配置启动 如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/usr/local/src/redis-6.2.6),名字叫redis.conf: 我们先将这个配置文件备份一…

原创【matcap材质在ue4中的实现办法】

matcap材质在ue4中的实现办法 2023-08-29 15:34 https://www.bilibili.com/video/BV1GR4y1b76n/?spm_id_from333.337.search-card.all.click&vd_sourced76b773892c830a157c0ccc97ba78411 评论(0)

Sora是什么?Sora怎么使用?Sora最新案例视频以及常见问题答疑

Sora 是什么? 2024年2月16日,OpenAI 在其官网上面正式宣布推出文本生成视频的大模型Sora 这样说吧给你一段话, 让你写一篇800字的论文,你的理解很可能都有偏差,那么作为OpenAi要做文生视频到底有多难,下面…

聊聊公众号最让我不爽的两个痛点

本文首发于 Python猫 微信公众号最让我不爽的地方有两个,而且有很多人虽然也不爽,却不知道原因。 本文想聊聊公众号的两个痛点,因为我经常收到私信问这两个问题,本文算是一次集中的回复吧。 第一个不爽的点是公众号会屏蔽外链&…

vulhub打靶记录——Corrosion2

文章目录 主机发现端口扫描ssh—22search openssh EXP web服务—8080目录扫描登录tomcat后台 提权切换用户查看用户权限寻找SUID命令破解登录密文 总结 主机发现 使用nmap扫描局域网内存活的主机,命令如下: nmap -sP 192.168.151.0/24192.168.151.1&am…

1分钟带你学会使用NumPy对数组的级联合并操作

1.np.concatenate() ​参数是列表或元组 级联的数组维度必须相同 可通过axis参数改变级联的方向 注意,np.concatenate函数要求所有输入数组在沿着连接轴的维度上具有相同的形状 # 导包import numpy as np​# 创建两个二维数组n1 np.random.randint(0,100,size…

中非绿色能源合作走深走实

近日,第十六届非洲能源大会在南非立法首都开普敦举行,探讨实现非洲能源转型的可持续解决方案。近年来,中国与非洲国家不断加强绿色能源合作,促进双方优势资源互补,逐步探索合作共赢的绿色能源合作方案。 势头良好 近年…

[lesson10]C++中的新成员

C中的新成员 动态内存分配 C中的动态内存分配 C中通过new关键字进行动态内存申请C中的动态内存申请是基于类型进行的delete关键字用于内存释放 new关键字与malloc函数的区别 new关键字是C的一部分malloc是由C库提供的函数new以具体类型位单位进行内存分配malloc以字节位单位…

[计算机效率] 磁盘空间分析工具:FolderSize

3.15 磁盘空间分析工具:FolderSize FolderSize是一款磁盘管理工具,提供预约交互式磁盘空间分析体验,可以可视化观察磁盘空间使用情况。程序可以帮助用户快速查看并统计硬盘中的各个分区所占用的空间大小以及文件夹和文件的大小,并…

Java开发测试(第一篇):Java测试框架JUnit5

目录 1.基本介绍 2.maven中安装JUnit5 3.使用 4.JUnit5命名规则 5.JUnit5常用注解 6.JUnit5断言 7.JUnit5多个类之间的继承关系 8.JUnit5参数化 (1)使用场景: (2)使用前需在pom.xml文件中导入依赖 &#xff…

算法-数论-蓝桥杯

算法-数论 1、最大公约数 def gcd(a,b):if b 0:return areturn gcd(b, a%b) # a和b的最大公约数等于b与a mod b 的最大公约数def gcd(a,b):while b ! 0:cur aa bb cur%bpassreturn a欧几里得算法 a可以表示成a kb r(a,b,k&#xff0c…