Параметры 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
) forssr.target === 'webworker'
) - Связано: Разрешённые условия
Эти условия используются в процессе работы плагинов и влияют только на неэкстернализованные зависимости во время сборки 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
, поле main будет проигнорировано. Эта настройка влияет только на неэкспортируемые зависимости.