从 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
这些浏览器版本与截至 2025-05-01 的 Baseline 广泛可用的功能集一致。换句话说,它们都在 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 的对象 Hook 对齐。
- 应该使用
order
代替enforce
,并且应该使用handler
代替transform
。
高级
还有其他一些重大变更,只会影响少数用户。
- [#19979] chore: declare version range for peer dependencies
- 为 CSS 预处理器指定了 peer dependencies 版本范围。
- [#20013] refactor: remove no-op
legacy.proxySsrExternalModules
- 自 Vite 6 以来,
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
Hook 之前。请注意,如果您不希望某个特定路由应用server.cors
/preview.cors
选项,请确保从响应中删除相关的标头。
- 一些中间件现在应用于
从 v5 迁移
首先查看 Vite v6 文档中的 从 v5 迁移指南,了解将您的应用移植到 Vite 6 所需的更改,然后再继续进行此页面上的更改。