SSR 选项
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', 'module-sync']
用于 ssr 导入(包括 ssrLoadModule)的外部化直接依赖(由 Vite 导入的外部依赖)的条件。
:::tip 提示
使用此选项时,请确保在开发和构建时使用相同的值运行 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 成功解析入口点,则忽略主字段。此设置仅影响非外部化依赖。
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
