环境级 API 迁移
环境级 API 迁移
::: tip 反馈
请在 Environment API feedback discussion 给我们反馈
ViteDevServer中多个与模块图(module graph)和模块转换(modules transforms)相关的 API 已迁移到DevEnvironment实例上。影响范围:
Vite Plugin Authorswarning 未来弃用警告
Environment实例在v6.0首次引入。对server.moduleGraph以及其他现已迁移至环境实例的方法的弃用计划将在未来的主版本中进行。我们目前不推荐立即从 server 方法迁移。为了识别你的使用情况,请在 vite 配置中进行如下设置:
ts
future: {
removeServerModuleGraph: 'warn',
removeServerReloadModule: 'warn',
removeServerPluginContainer: 'warn',
removeServerHot: 'warn',
removeServerTransformRequest: 'warn',
removeServerWarmupRequest: 'warn',
}
:::
动机
在 Vite v5 及更早版本中,单个 Vite dev server 始终包含两个环境(client 和 ssr)。server.moduleGraph 中混合了来自这两个环境的模块。节点通过 clientImportedModules 和 ssrImportedModules 列表连接(但每个节点只维护一个 importers 列表)。转换后的模块由 id 和 ssr 布尔值表示。这个布尔值需要传递给 API,例如 server.moduleGraph.getModuleByUrl(url, ssr) 和 server.transformRequest(url, { ssr })。
在 Vite v6 中,现在可以创建任意数量的自定义环境(client、ssr、edge 等)。单个 ssr 布尔值已经不够用了。我们没有将 API 改为 server.transformRequest(url, { environment }) 这样的形式,而是将这些方法迁移到环境实例上,使其可以在没有 Vite dev server 的情况下被调用。
迁移指南
server.moduleGraph->environment.moduleGraphserver.reloadModule(module)->environment.reloadModule(module)server.pluginContainer->environment.pluginContainerserver.transformRequest(url, ssr)->environment.transformRequest(url)server.warmupRequest(url, ssr)->environment.warmupRequest(url)server.hot->server.client.environment.hot
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
