移至每個環境的 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)