与其它非打包解决方案比较
生产构建
Snowpack 的默认构建输出是未打包的:它将每个文件转换为单独的构建模块,然后将这些模块提供给执行实际绑定的不同“优化器”。这么做的好处是,你可以选择不同终端打包器,以适应不同需求(例如 webpack, Rollup,甚至是 ESbuild),缺点是体验有些支离破碎 —— 例如,esbuild
优化器仍然是不稳定的,Rollup 优化器也不是官方维护,而不同的优化器又有不同的输出和配置。
为了提供更流畅的体验,Vite 选择了与单个打包器(Rollup)进行更深入的集成。Vite 还支持一套 通用插件 API 扩展了 Rollup 的插件接口,开发和构建两种模式都适用。
由于构建过程的集成度更高,Vite 支持目前在 Snowpack 构建优化器中不可用的多种功能:
更快的依赖预构建
Monorepo 支持
Vite 能够支持 monorepo,我们已经有用户成功地将 Vite 与基于 Yarn, Yarn 2 和 PNPM 的 monorepo 一起使用。
CSS 预处理器支持
Vite 为 Sass and Less 提供了更精细化的支持,包括改进 @import
解析(可使用别名与 npm 依赖)和 。
Vue 第一优先级支持
Preact 团队的 WMR 提供了类似的特性集,而 Vite 2.0 对 Rollup 插件接口的支持正是受到了它的启发。
WMR 主要是为了 项目而设计,并为其提供了集成度更高的功能,比如预渲染。就使用范围而言,它更加贴合于 Preact 框架,与 Preact 本身一样强调紧凑的大小。如果你正在使用 Preact,那么 WMR 可能会提供更好的体验。
@web/dev-server(曾经是 )是一个伟大的项目,基于 koa 的 Vite 1.0 开发服务器就是受到了它的启发。
@web/dev-server
适用范围不是很广。它并未提供官方的框架集成,并且需要为生产构建手动设置 Rollup 配置。
总的来说,与 @web/dev-server
相比,Vite 是一个更注重自身/更高层面的工具,旨在提供开箱即用的工作流。话虽如此,但 @web
这个项目群包含了许多其他的优秀工具,也可以使 Vite 用户受益。