遷移至多環境 API
反饋
請在 Environment API 反饋討論區 提供反饋
ViteDevServer 中與模組圖和模組轉換相關的多個 API 已遷移至 DevEnvironment 例項中。
影響範圍:Vite 外掛開發者
未來棄用計劃
Environment 例項最早在 v6.0 中引入。server.moduleGraph 以及其他現已歸入環境的方法計劃在未來的主版本中棄用。我們目前尚不建議停止使用伺服器方法。若要識別你程式碼中的相關用法,請在 vite 配置中進行設定。
ts
future: {
removeServerModuleGraph: 'warn',
removeServerReloadModule: 'warn',
removeServerPluginContainer: 'warn',
removeServerHot: 'warn',
removeServerTransformRequest: 'warn',
removeServerWarmupRequest: '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.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
