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 解析,则主字段将被忽略。此设置仅影响未被外部化的依赖项。
