Ergonomics of vp pack + plugins
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- build-system, tooling
Direzione di ricerca
Inizia dal percorso di estrazione della configurazione utilizzato da vp pack e dal comportamento di lazyPlugins controllato da VP_RESOLVING_CONFIG_METADATA; l’issue fornisce una riproduzione in vite.config.ts. Esegui vp pack con il plugin fornito e traccia come root e pack.plugins vengono inoltrati a tsdown. Il lavoro è completato quando i plugin di pack vengono eseguiti rimanendo lazy per vp lint e vp fmt, e la composizione dei plugin root è chiarita.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Configuring plugins for library packaging via vp pack has confusing ergonomics and a potential bug when using lazyPlugins:
- Root
pluginsare ignored byvp pack: In a library project usingvite.config.ts, plugins configured at the root (plugins: [...]) are not forwarded totsdownduringvp pack. Users must define them redundantly underpack.plugins. lazyPluginsfails silently insidepack.plugins: If a user attempts to wrappack.pluginsinlazyPlugins(() => [...])to avoid running plugin factories duringvp lintorvp fmt, the plugins never execute duringvp pack.
Root Cause
When vp pack extracts the tsdown config from vite.config.ts, VP_RESOLVING_CONFIG_METADATA is set to "1".
Inside lazyPlugins:
function lazyPlugins(cb) {
if (process.env["VP_RESOLVING_CONFIG_METADATA"] === "1") return;
const result = cb();
return result;
}
Because the metadata environment marker is active during config extraction for vp pack, lazyPlugins returns undefined. Consequently, tsdown runs with no plugins.
Reproduction
In vite.config.ts:
import { defineConfig, lazyPlugins } from 'vite-plus';
function myPlugin() {
return {
name: 'test-plugin',
buildStart() {
console.log('--- PLUGIN EXECUTED ---');
},
};
}
export default defineConfig({
pack: {
entry: ['src/index.ts'],
// ❌ Fails: '--- PLUGIN EXECUTED ---' is never printed
plugins: lazyPlugins(() => [myPlugin()]),
// ⚠️ Works, but runs eagerly during `vp lint` / `vp fmt`:
// plugins: [myPlugin()],
},
// ❌ Ignored by `vp pack`:
// plugins: [myPlugin()],
});
Run:
vp pack
Suggested solution
lazyPluginsshould evaluate when resolving the build pipeline forvp pack, so plugins can be lazily loaded without executing duringvp check/vp fmt/vp lint.- Ideally, plugins defined at the root (
plugins: [...]) should either auto merge withpack.pluginsby default when building libraries, or vite-plus should provide clear ergonomics/typing on how root Vite plugins vs. pack plugins compose. It's frankly confusing having two separate places to specify the plugin arrays.
Alternative
No response
Additional context
No response
Validations
- Read the Contributing Guidelines.
- Confirm this request is for Vite+ itself and not for Vite, Vitest, tsdown, Rolldown, or Oxc.
- Check that there isn't already an issue requesting the same feature.
- Lingua principale
- Rust
- Stelle
- 6k
- Fork
- 274
- Merge medio
- 1g 11h
- PR unite (30g)
- 206
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di voidzero-dev/vite-plus
-
`npx --package=vite-plus vp create` fails with exit 127 when npm is the chosen package managerApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
voidzero-dev/vite-plus#2970 ·
I maintainer di solito rispondono entro 1 giorno
-
pending triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
voidzero-dev/vite-plus#2882 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
voidzero-dev/vite-plus#2097 · 10 commenti · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Windows: PowerShell installer (1.1.0) does not add vite-plus\bin to user PATH — 'vp' not recognizedAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
voidzero-dev/vite-plus#2984 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
pending triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 40/100
voidzero-dev/vite-plus#2983 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di voidzero-dev/vite-plus
Issue simili
-
Write a support policyAperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 72/100
MattA-Official/vwmcp#20 ·
-
documentation good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
undergroundrap/hatchling#15 ·
-
Progress difficulty filter lists Hard before MediumForse già presa @Pandamachi l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
sysprog21/codetrial#281 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
CLI: --verdict silently ignores extra program/file argumentsForse già presa @oxura l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
HigherOrderCO/Bend#1503 ·
-
Add MySQL test coverage for numeric_precision/numeric_scale and seq_in_fk (follow-up to #939)Forse già presa @tosinxt l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
TabularisDB/tabularis#977 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno