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