this.environment
em ganchos
Feedback
Dê -nos feedback na discussão sobre feedback da API ambiente
Antes do Vite 6, apenas dois ambientes estavam disponíveis: client
e ssr
. Um único argumento de gancho de options.ssr
plug -in em resolveId
, load
e transform
permitiu que os autores do plug -in diferenciassem entre esses dois ambientes ao processar módulos nos ganchos de plug -in. No Vite 6, um aplicativo Vite pode definir qualquer número de ambientes nomeados, conforme necessário. Estamos introduzindo this.environment
no contexto do plug -in para interagir com o ambiente do módulo atual em ganchos.
AFETO ACENDE: Vite Plugin Authors
Future Deprecation
this.environment
foi introduzido em v6.0
. A depreciação de options.ssr
está planejada para v7.0
. Nesse ponto, começamos a recomendar a migração de seus plugins para usar a nova API. Para identificar seu uso, defina future.removePluginHookSsrArgument
a "warn"
em sua configuração vite.
Motivação
this.environment
Não apenas permita que a implementação do gancho do plug -in conheça o nome atual do ambiente, mas também fornece acesso às opções de configuração do ambiente, informações do gráfico do módulo e transformar o pipeline ( environment.config
, environment.moduleGraph
, environment.transformRequest()
). Ter a instância do ambiente disponível no contexto permite que os autores do plug -in evitem a dependência de todo o servidor dev (normalmente armazenado em cache na inicialização através do gancho configureServer
).
Guia De Migração
Para que o plugin existente faça uma migração rápida, substitua o argumento options.ssr
por this.environment.name !== 'client'
nos ganchos resolveId
, load
e transform
:
import { Plugin } from 'vite'
export function myPlugin(): Plugin {
return {
name: 'my-plugin',
resolveId(id, importer, options) {
const isSSR = options.ssr // [! Código -]
const isSSR = this.environment.name !== 'client' // [! Code ++]
if (isSSR) {
// Lógica específica do SSR
} else {
// Lógica específica do cliente
}
},
}
}
Para uma implementação a longo prazo mais robusta, o gancho do plug-in deve lidar com vários ambientes usando opções de ambiente de granulação fina, em vez de confiar no nome do ambiente.