this.environment в крючках
Feedback
Дайте нам отзыв в Обсуждении от обратной связи API Environment
Перед Vite 6 были доступны только две среды: client и ssr . options.ssr аргумент крючков с плагином в resolveId , load и transform позволил авторам плагина дифференцировать эти две среды при обработке модулей в крючках плагина. В Vite 6 приложение Vite может определить любое количество именованных среда по мере необходимости. Мы представляем this.environment в контексте плагина, чтобы взаимодействовать с средой текущего модуля в крючках.
Влияние сфера действия: Vite Plugin Authors
Future Deprecation
this.environment был введен в v6.0 . Унимок options.ssr запланирована на v7.0 . В этот момент мы начнем рекомендовать мигрирование ваших плагинов, чтобы использовать новый API. Чтобы идентифицировать ваше использование, установите future.removePluginHookSsrArgument до "warn" в конфигурации.
Мотивация
this.environment не только позволяет реализации плагина крючка знать текущее имя среды, но и дает доступ к параметрам конфигурации среды, информации о графе модуля и преобразовании трубопровода ( environment.config , environment.moduleGraph , environment.transformRequest() ). Наличие экземпляра среды в контексте позволяет авторам плагинов избегать зависимости всего сервера Dev (обычно кэшируется при запуске через configureServer крючка).
Миграционный Гид
Чтобы существующий плагин выполнял быструю миграцию, замените аргумент options.ssr на this.environment.name !== 'client' в resolveId , load и transform крючках:
import { Plugin } from 'vite'
export function myPlugin(): Plugin {
return {
name: 'my-plugin',
resolveId(id, importer, options) {
const isSSR = options.ssr // [! Код -]
const isSSR = this.environment.name !== 'client' // [! Code ++]
if (isSSR) {
// SSR -специфическая логика
} else {
// Конкретная логика клиента
}
},
}
}Для более надежной долгосрочной реализации плагин крюк должен обрабатывать для нескольких сред, используя мелкозернистые опции среды, а не полагаться на имя среды.