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