0

0

聊聊Vue的新型前端构建工具 Vite(初体验)

青灯夜游

青灯夜游

发布时间:2022-04-24 09:21:28

|

4140人浏览过

|

来源于segmentfault

转载

本篇文章我们带大家初体验下vue的新型前端构建工具 vite,聊聊和vue-cli 初始化的目录有什么不同等,希望对大家有所帮助!

聊聊Vue的新型前端构建工具 Vite(初体验)

ViteVue3 在 2022 年应该不算个新事物了,但应该也有很多像我一样还没有接触过这两个 “新鲜玩意” 的。(学习视频分享:vuejs教程

这两样(Vite + Vue3)给我的感觉是完完全全的新鲜玩具,是新时代的潮流。

看着手里的 webpack + Vue2,想着会不会像几年前的 angularjs + gulp 一样,成为历史。

立即学习前端免费学习笔记(深入)”;

临近年关,也有了一些闲暇时间,来认识一下被人安利多次的新型前端构建工具 Vite + 全新升级的 Vue3 吧!

从 Vite 开始

先来看看 Vite 的官方介绍吧。

image

可以看出,在本地开发时,Vite 使用了 原生 ES 模块:现代浏览器(比如最新版谷歌)已经不需要依赖 webpack 管理包模块,而是可以和 Nodejs 一样具有模块管理能力,这就是 原生 ES 模块 能力。

所以,在本地开发时,Vite 省略了一些耗时的编译过程,热更新自然快。

在构建生产产物时,可以构建现代浏览器产物,也可以通过 Rollup 输出生产环境的高度优化过的静态资源。—— 这个高度优化到什么程度,我们可以在后面的文章里去探讨一下。

上手

Vite 的上手使用很简单,直接运行 npm create vite@latest 命令即可。

npm create 其实就是 npm init 命令,而 npm init 命令带上包名执行的就是 npm exec,也就是执行 vite 包的默认命令 —— 初始化。

输入命令后,需要添加项目名称和技术栈,可以看到可供选择的技术栈有这么几种(如下图)

image

vite 支持的框架有 6 种,有一半我都不认识。

  • vanilla:Vanilla JS 是一个快速、轻量级、跨平台的JavaScript框架。Vanilla JS 是世界上最轻量的JavaScript框架(没有之一) —— 其实这玩意就是原生 JS。
  • vue/react:这两个应该不用过多介绍了吧。
  • preact:React 的轻量级替代方案。
  • lit:Lit 是一个简单的库,用于构建快速、轻量级的 Web 组件。(看了一眼语法,感觉还挺好玩的。)
  • svelte:一个不使用 Virtual DOM 的库 —— 真酷。这个库的作者和 Rollup 的作者是同一人。

这里我选了 vue + ts 进行创建。

image

现在来看看,这个新建的项目目录长啥样吧。(如下图)

image

和用 vue-cli 初始化的目录有两处不同:

  • index.html 入口文件被移到了根目录下。官方解释是:在开发期间 Vite 是一个服务器,而 index.html 是该 Vite 项目的入口文件。

  • vite.config.ts 替代了 vue.config.js,作为 vite 项目的配置文件。

接下来,我们看看 package.json 的内容吧。(如下)

{
  "name": "vite-try",
  "version": "0.0.0",
  "scripts": {
    "dev": "vite",
    "build": "vue-tsc --noEmit && vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "vue": "^3.2.25"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^2.0.0",
    "typescript": "^4.4.4",
    "vite": "^2.7.2",
    "vue-tsc": "^0.29.8"
  }
}

从上面可以看出,使用 Vite 初始化的 Vue 项目,Vue 的版本已经是最新的 Vue3 了。而开发时依赖也从 vue-cli/webpack 系列切换到了 vite 系列。

启动项目

在体验 Vue3 新语法之前,先把项目启动,看看效果吧。

在使用 npm i 安装完依赖后,使用 npm run dev 即可启动 本地开发 模式了。

image

刚运行项目,启动速度着实让我吃了一惊。

这比 Vue2 初始化的项目启动也快太多了,刚一眨眼项目就已经启动了。

当然,我们从它的介绍可以得知,这是因为在本地开发时,Vite 使用了 原生 ES 模块,所以期间没有涉及模块编译过程,节约了不少时间。

查看本地运行的模块

我们打开控制台,先看看我们的 html 文件。(如下图)

image

从上午可以看出,html 中引入了 main.ts,也就是我们这个项目的入口文件。(如下图)

image

从上面这张图可以看出,代码还是原生的 import,没有经过任何转译。

但是,在这里我看到请求的资源,有 ts 还有 vue

难道谷歌浏览器已经支持直接加载 tsvue 文件了吗?其实并不是,这里的奥妙之处来自于文件的响应头 —— Content-Type,这决定了浏览器以什么样的方式处理该文件。(如下图)

image

如果你点开其他 .vue 文件可以看出,.vue 文件还是经过编译,成为了可供浏览器识别的 js 类型,但模块还是使用了谷歌浏览器支持的 原生 ES 模块。(如下图)

image

我们来看看页面长啥样吧。(如下图)

image

emmmmm,经典的 Vue 启动页。

PictoGraphic
PictoGraphic

AI驱动的矢量插图库和插图生成平台

下载

上图的两行话引起了我的注意:

  • 推荐使用的 IDE 是 vscode + volar

  • 修改 components/HelloWorld.vue 来测试本地热更新功能。

vscode + volar

vscode 是我一直用于写 vue 的代码编辑器,可 volar 是啥呢?

查了一下,原来是 vscode 中用于支持 vue3 语法的一个插件,可以用于智能语法提示和错误检查。(如下图)

image

果断安装一波。—— 学霸一把梭,差生文具多

文档中提到了,该插件可能会和 vetur 插件有冲突,建议两者只开启一个。(确实如此),所以在一个工作区内的话,只开一个插件吧,避免冲突。

本地热更新

接下来,我来修改 components/HelloWorld.vue 测试一下本地热更新功能。

其实感觉不用试,速度肯定很快。

image

修改代码后,保存的一瞬间就热更新完成了,几乎是感觉不到的。

这跟项目小也有关系,对于比较大的项目,修改代码以后,热更新的速度如何,还需要再验证。

构建项目

本地开发已经体验过了,现在来构建项目试试吧,看看产物长啥样。

使用 npm run build 命令可以构建项目。这里发现有个报错。(如下图)

image

我这是刚初始化的项目,怎么第一次构建就报错了呢?

这里看出报错是 可选链操作符 语法的报错,想了一下应该是 node 版本的问题。我本地的 node 版本是 v12.20.0,在官方文档找了找,确实有相关的问题记录。(如下图)

image

看来 vue + ts 的模板依赖的 node 版本需要更高,我这里将 node 版本切换到 v14.15.0,再次运行构建命令,就成功啦!(如下图)

image

最终构建的代码是由 Rollup 进行打包的,Rollup 其实我也没用过,还是看看他的官方介绍吧。

image

这里主要还是了解一下 rollupwebpack 的区别,rollup 的模块打包能力并没有 webpack 强大,但是利用了 tree-shaking 充分处理 js 文件,打包出来的 js 文件会比较 “干净”。

然后,我们进入 dist 目录,使用 anywhere(一个简单的 http 服务器) 运行一下项目看看。

image

image

image

从上图可以看出,vite 打包出来的文件,入口 js 是直接阻塞 DOM 渲染线程的。不过,这两个 js 的文件也不大,加起来才 53k

当然,随着项目越来越大,这个体积也会越来越大的。

Vite 兼容性问题

一个新框架的推出,大家都比较关心它的社区活跃度,其次就是它的兼容性了。

我们来看看 Vite 打包出来的代码兼容性如何吧。(如下图)

image

Vite 官方介绍,默认配置构建出来的代码是只能支持现代浏览器的,也就是下面这些。

image

可以通过修改配置最低支持到 es2015,也就是 ES6 (也就是说,IE 不支持)。

但是可以通过一个插件 ——  @vitejs/plugin-legacy 来支持传统浏览器(比如 IE11)。不过,IE11 好像也就是它的极限了,更低的版本可能会出现问题。

所以,如果你对于浏览器兼容要求比较严格的话,请谨慎使用 Vite

小结

好了,到这里,这次 Vite 的初体验,到这里就结束了。

Vite 新建一个项目,然后修改代码,查看变更。最后,构建项目,本地预览。

这一切用 Vite 来做还是比较简单的,而且 很快

我想,我会开始尝试用 Vite + Vue3 去写一些小项目练手,然后再看看有没有适合它的生产项目。

下次我再来聊聊我使用 Vue3 的初体验,欢迎大家持续关注。

(学习视频分享:web前端开发编程入门

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

15

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

12

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

8

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

550

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

197

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

331

2026.01.28

php怎么写接口教程
php怎么写接口教程

本合集涵盖PHP接口开发基础、RESTful API设计、数据交互与安全处理等实用教程,助你快速掌握PHP接口编写技巧。阅读专题下面的文章了解更多详细内容。

11

2026.01.28

php中文乱码如何解决
php中文乱码如何解决

本文整理了php中文乱码如何解决及解决方法,阅读节专题下面的文章了解更多详细内容。

16

2026.01.28

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

11

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 7.4万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 1.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号