Vue 3 企业级项目实战课
杨文坚
前阿里前端 Leader,前腾讯 IMWeb 团队高级前端工程师
6908 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
实战篇 (19讲)
Vue 3 企业级项目实战课
15
15
1.0x
00:00/00:00
登录|注册

03|从Rollup到Vite:如何用Vite构建你的Vue 3项目?

你好,我是杨文坚。
上节课我们跳过了官方推荐的 Vite,选择了 Webpack 来搭建 Vue.js 3 项目,这是因为我们看重 Webpack 丰富的技术生态,Webpack 发展了近 10 年,沉淀了许多问题处理经验,企业级的应用打包编译方案也相当丰富。
但是,近两年 Vue.js 官方推出了 Vite,很多新项目也开始使用 Vite。Vite 作为 Vue.js 3 官方标配的开发工具,代表了官方技术的发展方向,因此作为后续 Vue 学习和进阶,肯定是不可跳过的一环。
所以这一讲,我们就来尝试一下,如何用 Vite 来搭建 Vue.js 3 项目。不过,在开始之前,我还是需要给你简单介绍一下 Vite。

Vite:Vue.js 3 的官方标配

首先我们要知道,Vue.js 发展到现在,已经不是一个纯粹的前端页面代码库或者框架了,而是一整套技术体系。这里的技术体系是指围绕着 Vue.js 进行构建的技术生态,包括测试工具 Vitest、文档工具 VitePress 等等。这些工具开箱即用的能力,目前都是基于 Vite 来进行打造的,这也说明了 Vite 在整个 Vue.js 生态中的重要位置。
Vite 是 Vue.js 作者尤雨溪早年基于 Rollup 做的一个开发工具,核心是为了提高 JavaScript 项目的开发效率。那么相比同类型的开发工具来说,它的优势在哪呢?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Vite vs Rollup: Vue.js 3项目构建工具选择 Vite是Vue.js 3的官方开发工具,旨在提高JavaScript项目的开发效率。相比于Webpack,Vite支持开箱即用,无需繁杂配置,且利用最新的浏览器特性,能在开发模式下快速编译代码,极大提升开发效率。Vite采用esbuild进行代码编译,其打包速度比普通JavaScript实现的构建器快10~100倍。然而在生产模式中,Vite选择了Rollup,因为esbuild在代码分割和CSS处理方面不如Rollup稳定成熟。 文章介绍了如何用Vite和Rollup来搭建Vue.js 3项目,并对比了两者的差异。Vite的配置相对简单,只需几个简单的依赖和配置文件即可进入开发和生产模式,而Rollup则需要更多的配置和插件选择。在开发模式下,Vite通过esbuild和浏览器ESM对项目页面的JavaScript进行按需加载,相比之下,Rollup直接将所有依赖代码打包编译成Bundle文件格式。这导致Vite在开发模式下能快速编译,理论上比Rollup更快。然而,Vite的开发模式也可能面临浏览器请求时间过长的问题,影响开发体验。 尽管Vite在生产模式下通过Rollup进行打包编译,但开发和产线两种不同编译代码结果可能会带来一些风险。因此,使用Vite开发企业级项目需要多验证和测试功能,以降低项目风险。总的来说,Vite在开发效率和配置简易性方面具有优势,但在企业级项目中需要谨慎使用,特别是在处理开发和生产模式下的差异时。 通过本文,读者可以快速了解Vite和Rollup在Vue.js 3项目构建中的差异,以及在选择合适的构建工具时需要考虑的因素。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Vue 3 企业级项目实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • WGH丶
    又双叒叕出新工具了---turbopack---采用Rust编写。自称webpack继任者,热更新比vite快10倍,比webpack快700倍。 尤达发文指出其有选择环境、选择数据之嫌。 不知其未来如何。

    作者回复: 这个我专门问过vue团队,据推测turbopack正式可用至少还需要2年,2年后我们可以再看看。但其缓存的设计是核心,其他各编译器都用上swc+多线程时候应该差异就不大了

    2022-11-26归属地:江苏
    1
  • 都市夜归人
    文中有一些不严谨的地方,比如npm run build后怎么就可以直接用浏览器访问?

    作者回复: 感谢大家发掘错误

    2022-11-30归属地:江苏
    2
  • 默默且听风
    vite的HTML 中 需要加上 type="module" 不然会报错。完全体大概长这样 <script type="module" src="./src/index.js"></script>
    2023-05-24归属地:北京
    3
  • 风太大太大
    Vite 开发模式下的 esbuild 的按需打包编译,真的是绝对比 Rollup 的 Bundle 打包方式快吗?如果不是,能否推演一下有哪些可能的打包慢场景? vite核心是利用了esBuild打包(依赖GO) + 基于原生 ESM 按需编译;所以绝大部分场景web场景应该是vite要快于Rollup (毕竟后者是用node打包 + devServer); 但是并不是所有的打包场景都是web,我认为在一些hybird-native 方案中,vite就不能使用,而传统的rollup基于强大的plugin就能处理。 我也不知道我观点对不对,还请作者解密一下回答一下这个问题。
    2022-11-27归属地:湖北
    2
  • 文件
    文中有一处细节作者貌似忽略掉了,在配置完项目目录后需要运行 npm init -y 初始化项目后才能进行后期的安装依赖等操作
    2024-01-28归属地:甘肃
  • 默默且听风
    因为win环境下没有设置NODE_ENV所以在启动的时候会有遇到“无法访问此网站”诸如此类的提示,可以修改一下Rollup中的设置 (process.env.NODE_ENV === 'development' || !process.env.NODE_ENV) ? serve({ port: 6001, contentBase: 'dist' }) : null 我是这样改的
    2023-05-24归属地:北京
  • Samuel
    vite 能实现webpack模块联邦的功能不?
    2023-05-14归属地:湖南
  • avava
    跑不起来。。npm run dev后无法访问,windows平台,按理说作者不是windows平台开发的,没遇到NODE_DEV不是内部命令这些坑。。
    2022-11-28归属地:湖北
    3
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部