Vite 3.0 发布,下一代的前端工具链


距离 v2 发布 16 个月后,Vite 3.0 现已正式发布。公告指出,去年 2 月 Vite 2 发布以来,其采用率就在不断增长;每周 npm 下载量超过 100 万次,迅速形成了庞大的生态系统。Vite 正在推动 Web 框架的新一轮创新竞赛。

“我们决定至少每年发布一个新的 Vite 主要版本,以配合 Node.js 的 EOL,并借此机会定期审查 Vite 的 API,为生态系统中的项目提供简短的迁移路径。”

Vite 3.0 更新内容主要包括:

新文档

可前往 vitejs.dev 使用新的 v3 文档。Vite 现在使用新的 VitePress 默认主题,在其他 features 之间具有一个 Dark 模式。

生态系统中的几个项目已经迁移到这里(参见 Vitest、vite-plugin-pwa 和 VitePress 本身)。如果你需要访问 Vite 2 文档,它们将保留在 v2.vitejs.dev。还有一个新的 main.vitejs.dev 子域,其中对 Vite 主分支的每个提交都是自动部署的。这在测试 beta 版本或为核心开发做出贡献时很有用。

以及添加了一个正式的西班牙语翻译:

  • 简体中文
  • 日本语
  • 西班牙文

创建 Vite Starter Templates

create-vite 模板是一个很好的工具,可以用你最喜欢的框架快速测试 Vite。在 Vite 3 中,所有的模板都有一个与新文档一致的新主题。在线打开它们并立即开始使用 Vite 3:

现在所有模板都共享这个主题。对于更完整的解决方案,包括 linting、测试设置和其他功能;有一些框架的官方 Vite-powered 模板,如 create-vue 和 create-svelte。在 Awesome Vite 有一个由社区维护的模板列表。

开发改进

Vite CLI

VITE v3.0.0ready in 320 ms

Local: http://127.0.0.1:5173/
Network: use --host to expose

除了 CLI 的美学改进之外,默认的开发服务器端口现在是 5173,预览服务器监听端口是 4173。此更改将确保 Vite 将避免与其他工具发生冲突。

改进的 WebSocket 连接策略

Vite 2 的痛点之一是在代理后面运行时配置服务器。Vite 3 更改了默认的连接方案,因此它在大多数情况下都是开箱即用的。所有这些设置现在都通过vite-setup-catalogue作为 Vite Ecosystem CI 的一部分进行测试。

冷启动改进

Vite 现在可以避免在冷启动期间,当插件在抓取初始静态导入的模块时注入导入时完全重新加载(#8869)。

import.meta.glob

import.meta.glob支持被重写。可阅读 Glob Import Guide 中的新功能:

多个模式可以作为数组传递

import.meta.glob(['./dir/*.js', './another/*.js']) 

现在支持 Negative Patterns(以!为前缀)以忽略某些特定文件

import.meta.glob(['./dir/*.js', '!**/bar.js']) 

可以指定 Named Imports 以改进 tree-shaking

import.meta.glob('./dir/*.js', { import: 'setup' }) 

可以通过自定义查询以 attach metadata

import.meta.glob('./dir/*.js', { query: { custom: 'data' } }) 

Eager Imports 现在作为一个 flag 传递

import.meta.glob('./dir/*.js', { eager: true }) 

使 WASM Import 与 Future Standards 保持一致

WebAssembly Import API 已经过修订,以避免与 Future Standards 发生冲突并使其更加灵活:

import init from './example.wasm?init'

init().then((instance) => {
instance.exports.test()
})

WebAssembly guide 中了解更多信息。

构建改进

ESM SSR 默认构建

生态系统中的大多数 SSR 框架已经在使用 ESM 构建。因此,Vite 3 使 ESM 成为 SSR 构建的默认格式。这使得可以简化以前的 SSR 外部化启发式方法,默认情况下外部化依赖项。

改进的 Relative Base 支持

Vite 3 现在正确支持 relative base(使用base: ''),允许将构建的资产部署到不同的 bases 而无需重新构建。这在构建时不知道 base 的情况下非常有用,例如在部署到 IPFS 等内容可寻址网络时。

减少捆绑包大小

Vite 捆绑了它的大部分依赖项,并尽可能地尝试使用现代轻量级替代方案。Vite 3 的发布大小比 V2 小了 30%。

错误修复

在过去的三个月里,Vite 的 open issues 从 770 个减少到了 400 个。

兼容性说明

  • Vite 不再支持已达到 EOL 的 Node.js 12。现在需要 Node.js 14.18+。
  • Vite 现在以 ESM 的形式发布,为了兼容,在 ESM entry 中加入了 CJS 代理。
  • Modern Browser Baseline 现在针对支持原生 ES 模块、原生 ESM 动态导入和特性的浏览器以支持原生 ES 模块、原生 ESM 动态导入和import.meta功能的浏览器为目标。
  • SSR 和 library 模式下的 JS 文件扩展名现在使用有效的扩展名(js、mjs 或 cjs)来输出基于其格式和包类型的JS entries 和 chunks。

在迁移指南中了解更多信息。

更多内容可查看 Changelog。


相關推薦

2022-12-13

继在五个月前发布 Vite 3 后,现在 Vite 4 正式发布。如今 npm 每周的下载量从 100 万上升到 250 万,并继续保持增长。在今年的 Jamstack Conf 调查中,社区中的使用率从 14% 跃升至 32%,同时保持了 9.7 分的高满意度。 主要变化 与 Vi

2023-05-11

做好模块切分,兼顾快速适应分布式改造,核心所有模块发布到Maven仓库中,通过选配不同的模块快速搭建出一个系统,设计目标是将日常项目开发中,尤其是中小型项目中的一些高频诉求进行覆盖,还有一些主流业务场景进行

2023-03-23

度的可扩展性,并有完整的类型支持。 上周 Vite 正式发布了 4.2 版本,主要变化包括: 支持在 HTML 文件中替换环境变量 Vite 现在支持在 HTML 文件中替换环境变量。import.meta.env 中的任何属性都可以在具有特殊 %ENV_NA

2023-04-21

I 带来了高度的可扩展性,并有完整的类型支持。 最新发布的 Vite 4.3 显著提升了性能。发布公告写道,Vite 团队在这个版本中将工作重心放在提升开发服务器的性能上,其中包括简化解析逻辑、改进热路径、实现更智能的缓存

2022-11-18

以部署在任何运行 JavaScript 的平台上。 Nuxt 3.0 今天正式发布了稳定版,3.0 基于 Vue 3,为 TypeScript 提供了“一等公民”支持,并进行了一次彻底的重构,对内核进行了精简,速度更快,体验更好。 公告写道,Nuxt 3.0 的 API 已完

2022-08-11

被翻译成 6 种不同的语言——包括中文。 近日,Astro 发布了 1.0 正式版。团队称 1.0 意味着 API 已达到稳定状态,并可用于生产环境。部分新特性: 图像优化:引入新的<Image />和<Picture />组件 支持 MDX:在 Markdown

2022-09-11

与统一维护管理的模块。 通知公告:系统通知公告信息发布维护。 代码生成:一键生成模块 CRUD 的功能,包括后端和前端 Vue 等相关代码。 案例演示:常规代码生成器一键生成后的演示案例。 开发者信息 系统名称:Ja

2023-01-18

0 以及 Spring Cloud 2022.0.0、Spring Cloud Tencent 1.8.2 等全新版本发布,整个Java 社区也步入的 Java 17 和 Spring Boot 3 的新时代。紧跟 Java 技术和 Spring 社区的发展,让更多质量更好、性能更优的新特性服务于实际的开发工作,Dante Cloud 也

2023-01-20

StateOfJS 最新发布了 2022 年 JavaScript 现状调查报告指出,Solid 和 Qwik 等新兴前端框架正在挑战 React 的权威。该报告基于对近 40,000 名 Web 开发人员的调查,数量几乎是去年的两倍。 JavaScript 可能发展得很快,但 JavaScri

2024-02-22

ot 3.2 和 Spring Cloud 2023.0.0 JDK 21 响应式 Development 分支 下一代响应式微服务版本开发分支。开发分支不保证可用 3.1.X Spring Boot 3.1 和 Spring Cloud 2022.0.X JDK 17 Stable 代码分支 稳定可用版本分支,2024年5月,Spring Boot 3.3 发

2022-08-26

个团队”。 Oven 正在招聘系统工程师来帮助设计和构建下一代互联网基础设施,要求应聘人员需掌握的技能主要是"使用 Zig 和 C++ 的低级系统编程"。同时,该公司还发布了一个温馨提示称,“Oven 将是一项艰巨的任务,尤其是前

2023-03-24

11月24日,Spring Boot 3.0 以及 Spring Cloud 2022.0.0 等全新版本发布,整个Java 社区也步入的 Java 17 和 Spring Boot 3 的新时代。紧跟 Java 技术和 Spring 社区的发展,让更多质量更好、性能更优的新特性服务于实际的开发工作,Dante Cloud 也同

2023-07-13

项目二:高性能服务网格—Kmesh 服务网格作为云原生的下一代技术,已逐步成为云上基础设施标配,但其sidecar架构存在性能问题,是当前网格技术推广的关键;Kmesh高性能服务网格发布,通过架构创新为开发者带来全新网格性

2024-04-18

goview列表页/设计页与admin-ui项目间授权相关优化 goview发布后的页面与项目间的授权支持   适配支持以下数据库: PostgreSql、金仓Kingbase(Postgres模式) Oracle 12c+ 达梦DM8 SqlServer 2017+ 升级 Spring boot 至 v