迁移至每个环境的 API
反馈
请在 环境 API 反馈讨论 中向我们提供反馈。
与模块图和模块转换相关的多个来自 ViteDevServer
的 API 已迁移到 DevEnvironment
实例。
影响范围:Vite 插件作者
未来弃用
Environment
实例最初在 v6.0
中引入。计划在 v7.0
中弃用 server.moduleGraph
和现在位于环境中的其他方法。我们不建议您现在就迁移离服务器方法。要识别您的用法,请在您的 vite 配置中设置这些内容。
ts
future: {
removeServerModuleGraph: 'warn',
removeServerTransformRequest: 'warn',
}
动机
在 Vite v5 及更早版本中,单个 Vite 开发服务器始终有两个环境(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 开发服务器的情况下调用它们。
迁移指南
server.moduleGraph
->environment.moduleGraph
server.transformRequest(url, ssr)
->environment.transformRequest(url)
server.warmupRequest(url, ssr)
->environment.warmupRequest(url)