Feedback
请在 环境API反馈讨论 中给我们反馈
与模块图和模块转换相关的多个ViteDevServer
API已移至DevEnvironment
实例。
影响范围:Vite 插件作者
Future Deprecation
Environment
实例首次在v6.0
中引入。server.moduleGraph
和其他现在位于环境中的方法的弃用计划在v7.0
中进行。我们目前不建议从服务器方法迁移。要识别您的使用情况,请在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)