Plugins Compartilhados Durante a Construção
Feedback
Dê -nos feedback na discussão sobre feedback da API ambiente
Veja plugins compartilhados durante a construção .
AFETO ACENDE: Vite Plugin Authors
Future Default Change
builder.sharedConfigBuild
foi introduzido pela primeira vez em v6.0
. Você pode defini -lo true para verificar como seus plugins funcionam com uma configuração compartilhada. Estamos procurando feedback sobre como alterar o padrão em um futuro major, assim que o ecossistema de plug -in estiver pronto.
Motivação
Alinhe os pipelines de plug -in dev e construa.
Guia De Migração
Para poder compartilhar plugins entre ambientes, o estado do plug -in deve ser digitado pelo ambiente atual. Um plug -in do formulário a seguir contará o número de módulos transformados em todos os ambientes.
function CountTransformedModulesPlugin() {
let transformedModules
return {
name: 'count-transformed-modules',
buildStart() {
transformedModules = 0
},
transform(id) {
transformedModules++
},
buildEnd() {
console.log(transformedModules)
},
}
}
Se quisermos contar o número de módulos transformados para cada ambiente, precisamos manter um mapa:
function PerEnvironmentCountTransformedModulesPlugin() {
const state = new Map<Environment, { count: number }>()
return {
name: 'count-transformed-modules',
perEnvironmentStartEndDuringDev: true,
buildStart() {
state.set(this.environment, { count: 0 })
}
transform(id) {
state.get(this.environment).count++
},
buildEnd() {
console.log(this.environment.name, state.get(this.environment).count)
}
}
}
Para simplificar esse padrão, vite exporta um auxiliar perEnvironmentState
:
function PerEnvironmentCountTransformedModulesPlugin() {
const state = perEnvironmentState<{ count: number }>(() => ({ count: 0 }))
return {
name: 'count-transformed-modules',
perEnvironmentStartEndDuringDev: true,
buildStart() {
state(this).count = 0
}
transform(id) {
state(this).count++
},
buildEnd() {
console.log(this.environment.name, state(this).count)
}
}
}