跳至內容

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) (['module', 'browser', 'development|production'] (defaultClientConditions) 用於 ssr.target === 'webworker')
  • 相關: 解析條件

這些條件用於外掛程式管道中,並且僅影響 SSR 建置期間未外部化的依賴項。使用 ssr.resolve.externalConditions 來影響外部化的引入。

ssr.resolve.externalConditions

  • 類型: string[]
  • 預設: ['node']

在外部化直接依賴項(Vite 引入的外部依賴項)的 ssr 引入(包括 ssrLoadModule)期間使用的條件。

提示

使用此選項時,請確保在開發和建置中都使用 --conditions 標誌運行 Node,以獲得一致的行為。

例如,當設定 ['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 成功解析了入口點,則會忽略主欄位。此設定僅影響未外部化的依賴項。

在 MIT 授權下發布。(ccee3d7c)