Webpack 经历了近十年的发展,积累了许多问题处理的经验,企业级应用的打包编译方案也非常丰富。
然而,近两年 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 项目的开发效率。那么相比同类型的开发工具来说,它的优势在哪里呢?
除了前面我们提到的 Vite 支持开箱即用,无需像 Webpack 要做一堆繁杂的配置之外,很重要的一点就是 Vite 确实能够提升我们的开发效率。Vite 利用现在最新版本的浏览器支持 ESM 的特性,可以在开发模式下直接让所有 npm 模块和项目里的 JavaScript 文件按需加载执行,减少了开发模式编译时间,让开发过程中每次修改代码后能快速编译,进而提升了开发效率。
这一点对大部分开发者来说,都是解决了开发过程中很大的体验痛点。那我们再深入一步,为什么 Vite 能在开发模式中快速编译代码呢?因为 Vite 用了 esbuild。而 esbuild 是用 Go 语言编写的构建器,和普通 JavaScript 实现的构建器相比,它的打包速度能快 10~100 倍。
不过,截至到 2022 年,在 Vue.js 官方发布的 Vite 最新版 3.x 中,只有开发模式是用 esbuild 进行代码编译,而生产模式依旧用 Rollup 进行打包和编译。
这里问题就来了,既然我们说过 esbuild 的打包速度能够比普通 JavaScript 实现的构建器快 10~100 倍,那么 Vite 为什么在生产模式不选择用 esbuild,而去选择 Rollup 呢?
这是因为两种模式的侧重点有所不同。开发模式是面向开发者的,开发效率是最重要的,生产模式是面向企业项目的实际用户,代码功能稳定是第一位。
我们都知道,esbuild 其实也刚诞生不久,在代码分割和 CSS 处理方面没有 Rollup 那么成熟灵活。虽然它能降低代码编译时间提高开发效率,但最大的问题是还不稳定。可以用于开发者使用,但要是直接用于生产模式打包编译代码给企业用户使用,就不太能令人放心了。然而 Rollup 从 2015 年发布至今已经积累了多年的技术沉淀,形成了比较稳定的技术生态,所以 Vite 在生产模式就选择了 Rollup,追求稳定。
到这里,我们再来对 Rollup 做个补充介绍,Rollup 一开始在技术社区里的定位是做小工具开发的代码打包构建,但其实也是能跟 Webpack 一样做应用级别的代码打包构建。接下来,我们先讲解一下只用 Rollup 如何进行 Vue.js 3 项目配置,之后再来介绍 Vite 的使用,同时对比两者的差异。
毕竟,Vite 是基于 Rollup.js 的 Plugin 思路来打造插件体系的,同时也是把 Rollup.js 作为目前生产模式的底层打包构建工具。先了解 Rollup.js,可以让我们对 Vite 的插件使用概念有更清楚的认识。
Rollup 如何配置 Vue.js 3 项目?
patek-shs.fdcpx.net
patek-bjs.fdcpx.net
patek-shenzhen.biaoshouhou.cn
patek-gzs.biaoshouhou.cn
patek-shs.audemarsweixiu.com
patek-bjs.audemarsweixiu.com
patek-shenzhen.hidcwatch.com
patek-gzs.hidcwatch.com
patek-shs.fjfsx.com
patek-bjs.fjfsx.com
patek-shenzhen.hntwx.cn
patek-gzs.hntwx.cn
patek-shs.hx626.com
patek-bjs.hx626.com
patek-shenzhen.watchjwf.cn
patek-gzs.watchjwf.cn
patek-shs.shjshdzb.com
patek-bjs.shjshdzb.com
patek-shenzhen.shmwatch.cn
patek-gzs.shmwatch.cn
用 Rollup 来搭建 Vue.js 3 项目,可以分成以下几个步骤:
项目目录和源码准备;
安装依赖;
Vue.js 3 的 Rollup 编译脚本配置;
执行开发模式和生产模式的 Vue.js 3 编译。