Gemeinsame Plugins Während Des Builds
Feedback
Geben Sie uns Feedback bei der Umwelt -API -Feedback -Diskussion
Siehe gemeinsame Plugins während des Builds .
Umfang beeinflussen: Vite Plugin Authors
Future Default Change
builder.sharedConfigBuild
wurde zum ersten Mal in v6.0
eingeführt. Sie können feststellen, wie Ihre Plugins mit einer gemeinsam genutzten Konfiguration funktionieren. Wir suchen Feedback zum Ändern der Standardeinstellung in einem zukünftigen Major, sobald das Plugin -Ökosystem fertig ist.
Motivation
Ausrichten von Entwickler und Plugin -Pipelines bauen.
Migrationsleitfaden
Um Plugins über Umgebungen zu teilen, muss der Plugin -Status von der aktuellen Umgebung gekennzeichnet sein. Ein Plugin der folgenden Form zählt die Anzahl der transformierten Module in allen Umgebungen.
function CountTransformedModulesPlugin() {
let transformedModules
return {
name: 'count-transformed-modules',
buildStart() {
transformedModules = 0
},
transform(id) {
transformedModules++
},
buildEnd() {
console.log(transformedModules)
},
}
}
Wenn wir stattdessen die Anzahl der transformierten Module für jede Umgebung zählen möchten, müssen wir eine Karte aufbewahren:
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)
}
}
}
Um dieses Muster zu vereinfachen, exportiert Vite einen Helfer 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)
}
}
}