Vite 2.0正式发布
Vite 2.0 正式发布了!
Vite(法语意思是 “快”,发音为 /vit/,类似 veet)是一种全新的前端构建工具。你可以把它理解为一个开箱即用的开发服务器 + 打包工具的组合,但是更轻更快。Vite 利用浏览器原生的 ES 模块支持和用编译到原生的语言开发的工具(如 esbuild)来提供一个快速且现代的开发体验。
Vite 有多快?在 Repl.it 上从零启动一个基于 Vite 的 React 应用,浏览器页面加载完毕的时候,CRA(create-react-app)甚至还没有装完依赖。
如果你还没听说过 Vite 到底是什么,可以了解一下项目的设计初衷。
https://cn.vitejs.dev/guide/why.html
如果你想要了解 Vite 跟其它一些类似的工具有什么区别,可以参考下方的对比:
https://cn.vitejs.dev/guide/comparisons.html
2.0 带来了什么
Vite 1.0 虽然之前进入了 RC 阶段,但在发布之前我们决定进行一次彻底的重构来解决一些设计缺陷。所以 Vite 2.0 其实是 Vite 的第一个稳定版本。2.0 带来了大量的改进:
多框架支持
Vite 一开始主要注重于 Vue 的单文件组件支持,但 2.0 基于之前的经验提供了一个更稳定灵活的内部架构,从而可以完全通过插件机制来支持任意框架。现在 Vite 提供官方的 Vue, React, Preact, Lit Element 项目模版,而 Svelte 社区也在开发 Vite 整合方案。
全新插件机制和 API
Vite 2.0 受 WMR 的启发采用了基于 Rollup 插件 API 的设计。很多 Rollup 插件可以跟 Vite 直接兼容。插件可以在使用 Rollup 插件钩子之外使用一些额外的 Vite 特有的 API 来处理一些打包中不存在的需求,比如区分开发 vs 打包,或是自定义的热更新处理。
Vite 的 JS API 也得到了大幅改进 - 已经有不少用户在开发基于 Vite 的上层框架,Nuxt 团队也已经在 Nuxt 3 中验证了初步整合的可行性。
基于 esbuild 的依赖预打包
由于 Vite 是一个基于原生 ESM 的开发服务器,在启动时我们需要通过依赖预打包来达成两个目的:1. 减少模块 / 请求数量;2. 支持 CommonJS 依赖。预打包只有在依赖变动时才需要执行,但在有大量依赖的项目中,每次执行还是可能会需要很长时间。Vite 之前是使用 Rollup 来执行这个过程,在 2.0 中我们切换到了 esbuild,使这个过程加快了几十倍。冷启动一个之前需要将近 30 秒预打包的项目现在只需要不到两秒!从 webpack 或其它打包工具迁移到 Vite 应该也会有类似的速度改善。
更好的 CSS 支持
Vite 将 CSS 看作模块系统中的一等公民,并且内置了一下支持:
强化路径解析:CSS 中的 @import 和 url() 路径都通过 Vite 的路径解析器来解析,从而支持 alias 和 npm 依赖。
自动 URL 改写:所有 url() 路径都会被自动改写从而确保在开发和构建中都指向正确的文件路径。
CSS 代码分割:构建时每一个被分割的 JS 文件都会自动生成一个对应的 CSS 文件,并且两个文件会被自动并行按需加载。
服务端渲染 (SSR) 支持
Vite 2.0 提供实验性的 SSR 支持。Vite 提供一个灵活的 API 来在 Node.js 中高效率地直接加载 ESM 源码(并且同样有精准的更新而不需要打包)。提供 CommonJS 版本的依赖会在 SSR 时自动被跳过转换直接加载。生产环境下,服务器可以和 Vite 完全解耦。基于 Vite SSR 的架构也可以很方便的做静态预渲染(SSG)。
旧浏览器支持
Vite 默认只支持原生支持 ESM 的现代浏览器,但可以通过官方的 @vitejs/plugin-legacy 来支持旧浏览器。legacy 插件会自动额外生成一个针对旧浏览器的包,并且在 html 中插入根据浏览器 ESM 支持来选择性加载对应包的代码(类似 vue-cli 的 modern mode)。
尝试一下!
功能很多,但是试一下其实很简单。只需要一分钟,用以下命令就可以迅速搭起一个基于 vite 的项目(确保你的 Node.js 版本 >=12):
npm init @vitejs/app
Vite 官方文档还加入了从 Vite 1.0 迁移至 Vite 2.0 的说明:
https://cn.vitejs.dev/guide/migration.html
原文地址
https://zhuanlan.zhihu.com/p/351147547
声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!
时间:2021-03-10 22:44 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
- [数据挖掘]最快超算系统富岳正式全面启用
- [数据挖掘]2021年,互联网往何处去?
- [数据挖掘]C++20标准 (ISO/IEC 14882:2020) 正式发布
- [数据挖掘]Python 3.9 正式版要来了,会有哪些新特性?
- [数据挖掘]Apache Spark 3.0.0 正式版终于发布了,重要特性全面
- [数据挖掘]Redis 6.0.0 GA 正式发布,有这些新特性
- [数据挖掘]Python3.9又更新了:dict内置新功能,正式版十月见
- [数据挖掘]最新消息!Cloudera 全球发行版正式集成 Apache Fl
- [数据挖掘]TensorFlow 2.0中文开源书项目:日赞700,登上GitHu
- [数据挖掘]Apache Spark 3.0 预览版正式发布,多项重大功能发布
相关推荐:
网友评论:
最新文章
热门文章