跳至内容

迁移至每个环境的 API

反馈

请在 环境 API 反馈讨论 中向我们提供反馈。

与模块图和模块转换相关的多个来自 ViteDevServer 的 API 已迁移到 DevEnvironment 实例。

影响范围:Vite 插件作者

未来弃用

Environment 实例最初在 v6.0 中引入。计划在 v7.0 中弃用 server.moduleGraph 和现在位于环境中的其他方法。我们不建议您现在就迁移离服务器方法。要识别您的用法,请在您的 vite 配置中设置这些内容。

ts
future: {
  removeServerModuleGraph: 'warn',
  removeServerTransformRequest: 'warn',
}

动机

在 Vite v5 及更早版本中,单个 Vite 开发服务器始终有两个环境(clientssr)。server.moduleGraph 混合了这两个环境的模块。节点通过 clientImportedModulesssrImportedModules 列表连接(但每个列表都维护一个 importers 列表)。转换后的模块由 idssr 布尔值表示。此布尔值需要传递给 API,例如 server.moduleGraph.getModuleByUrl(url, ssr)server.transformRequest(url, { ssr })

在 Vite v6 中,现在可以创建任意数量的自定义环境(clientssredge 等)。单个 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)

在 MIT 许可证下发布。 (ccee3d7c)