SSR 選項
除非另有說明,本節中的選項同時應用於開發和構建環境。
ssr.external
- 型別:
string[] | true - 相關內容: SSR 外部依賴
將給定的依賴項及其傳遞依賴項外部化以進行 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: true 和 ssr.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 解析,則主欄位將被忽略。此設定僅影響未被外部化的依賴項。
