跳轉到內容

SSR 選項

除非另有說明,本節中的選項同時應用於開發和構建環境。

ssr.external

將給定的依賴項及其傳遞依賴項外部化以進行 SSR。預設情況下,除連結的依賴項(用於 HMR)外,所有依賴項都會被外部化。如果您希望外部化某個連結的依賴項,可以將其名稱傳遞給此選項。

如果設定為 true,則所有依賴項(包括連結的依賴項)都會被外部化。

請注意,如果顯式列出的依賴項(使用 string[] 型別)同時也列在了 ssr.noExternal 中(使用任何型別),前者將始終具有優先順序。

ssr.noExternal

  • 型別: string | RegExp | (string | RegExp)[] | true
  • 相關內容: SSR 外部依賴

防止列出的依賴項在 SSR 中被外部化,它們將在構建時被打包。預設情況下,只有連結的依賴項不會被外部化(用於 HMR)。如果您希望外部化某個連結的依賴項,可以將其名稱傳遞給 ssr.external 選項。

如果設定為 true,則不會有任何依賴項被外部化。但是,在 ssr.external 中顯式列出的依賴項(使用 string[] 型別)仍可獲得優先順序並被外部化。如果設定了 ssr.target: 'node',Node.js 內建模組預設也會被外部化。

請注意,如果同時配置了 ssr.noExternal: truessr.external: true,則 ssr.noExternal 具有優先權,且不會有任何依賴項被外部化。

ssr.target

  • 型別: 'node' | 'webworker'
  • 預設值: node

SSR 伺服器的構建目標。

ssr.resolve.conditions

  • 型別: string[]
  • 預設值: ['module', 'node', 'development|production'] (defaultServerConditions);若 ssr.target === 'webworker' 則為 ['module', 'browser', 'development|production'] (defaultClientConditions)
  • 相關內容: 解析條件

這些條件用於外掛流水線中,且僅影響 SSR 構建期間未被外部化的依賴項。請使用 ssr.resolve.externalConditions 來影響被外部化的匯入。

ssr.resolve.externalConditions

  • 型別: string[]
  • 預設值: ['node']

在 SSR 匯入(包括 ssrLoadModule)外部化直接依賴項(由 Vite 匯入的外部依賴項)時使用的條件。

提示

使用此選項時,請確保在開發和構建環境中執行 Node 時都使用相同的 --conditions 標誌,以獲得一致的行為。

例如,當設定為 ['node', 'custom'] 時,開發時應執行 NODE_OPTIONS='--conditions custom' vite,構建後應執行 NODE_OPTIONS="--conditions custom" node ./dist/server.js

ssr.resolve.mainFields

  • 型別: string[]
  • 預設值: ['module', 'jsnext:main', 'jsnext']

在解析包的入口點時嘗試使用的 package.json 欄位列表。請注意,此選項的優先順序低於從 exports 欄位解析的條件匯出:如果入口點已成功從 exports 解析,則主欄位將被忽略。此設定僅影響未被外部化的依賴項。