跳至內容

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