从 v6 迁移
Node.js 支持
Vite 不再支持已结束生命周期(EOL)的 Node.js 18。现在需要使用 Node.js 20.19+ 或 22.12+。
浏览器兼容性目标变更
build.target
的默认浏览器值已更新为较新的浏览器版本。
- Chrome 87 → 107
- Edge 88 → 107
- Firefox 78 → 104
- Safari 14.0 → 16.0
这些浏览器版本符合 Baseline 在 2025-05-01 时定义的“广泛可用”功能集标准。换句话说,它们的发布日期都在 2022-11-01 之前。
在 Vite 5 中,默认目标名为 'modules'
,但现在该选项已不再可用。取而代之的是引入了一个新的默认目标 'baseline-widely-available'
。
总体变化
移除了 Sass 旧版 API 支持
如计划所述,Sass 旧版 API 的支持已被移除。Vite 现在仅支持现代 API。你可以移除 css.preprocessorOptions.sass.api
和 css.preprocessorOptions.scss.api
配置选项。
移除了已弃用的功能
splitVendorChunkPlugin
(在 v5.2.7 中弃用)- 该插件最初是为了方便迁移到 Vite v2.9 而提供的。
- 如有需要,可以使用
build.rollupOptions.output.manualChunks
选项来控制分块行为。
transformIndexHtml
的 hook 级别enforce
/transform
(在 v4.0.0 中弃用)- 此更改是为了与 Rollup 的对象型 hooks 接口保持一致。
- 应使用
order
替代enforce
,使用handler
替代transform
。
进阶
还有其他一些只影响少数用户的破坏性更改。
- [#19979] chore: declare version range for peer dependencies
- 为 CSS 预处理器指定了 peerDependencies 的版本范围。
- [#20013] refactor: remove no-op
legacy.proxySsrExternalModules
legacy.proxySsrExternalModules
属性自 Vite 6 起已无实际作用,现已移除。
- [#19985] refactor!: remove deprecated no-op type only properties
- 以下未使用的属性现已移除:
ModuleRunnerOptions.root
、ViteDevServer._importGlobMap
、ResolvePluginOptions.isFromTsImporter
、ResolvePluginOptions.getDepsOptimizer
、ResolvePluginOptions.shouldExternalize
、ResolvePluginOptions.ssrConfig
- 以下未使用的属性现已移除:
- [#19986] refactor: remove deprecated env api properties
- 这些属性从一开始就被标记为弃用,现已移除。
- [#19987] refactor!: remove deprecated
HotBroadcaster
related types- 这些类型是作为现已弃用的 Runtime API 的一部分引入的,现已被移除:
HMRBroadcaster
、HMRBroadcasterClient
、ServerHMRChannel
、HMRChannel
。
- 这些类型是作为现已弃用的 Runtime API 的一部分引入的,现已被移除:
- [#19996] fix(ssr)!: don't access
Object
variable in ssr transformed code__vite_ssr_exportName__
现在是模块运行时上下文中的必需字段。
- [#20045] fix: treat all
optimizeDeps.entries
values as globsoptimizeDeps.entries
不再接收字面量字符串路径,而是始终接收 glob 模式。
- [#20222] feat: apply some middlewares before
configureServer
hook, [#20224] feat: apply some middlewares beforeconfigurePreviewServer
hook- 某些中间件现在会在
configureServer
/configurePreviewServer
钩子之前被应用。请注意,如果你不希望某个路由应用server.cors
/preview.cors
配置,请务必从响应中移除相关的请求头。
- 某些中间件现在会在
从 v5 迁移
请先查阅 Vite v6 文档中的 从 v5 迁移指南(中文版),了解如何将你的应用迁移到 Vite 6 所需的变更,然后再继续执行本页中的相关更改。