Vites håndtering av nestede forhold i betinget eksport ligner på andre moderne bunter som Rollup og Webpack, men med noen viktige forskjeller:
hekkende og spesifisitetsrekkefølge
- Vite: Forholdene kan hekkes i `Eksports -feltet til` pakken.json`. De skal spesifiseres fra mest spesifikke til minst spesifikke. Vite vil samsvare med den første tilstanden som er i listen over tillatte forhold [1].
- Rollup: Rollup støtter nestede forhold i feltet `Eksport`, etter samme spesifisitetsrekkefølge som Vite [2].
- Webpack: Webpack støtter også nestede forhold i feltet `Eksport`, og krever samme spesifisitetsrekkefølge som Vite og Rollup [3].
tillatt forhold
- Vite: Har en forhåndsdefinert liste over tillatte forhold som inkluderer `import`,` modul`, `nettleser`,` standard` og miljøspesifikke forhold som `produksjon` eller` utvikling`. Alternativet `Resolve.Conditions` kan legge til mer [1].
- Rollup: Tillater å spesifisere tilpassede forhold via `Preservemodules` og` Preservemodulesroot` -alternativene [2].
- Webpack: Tillater å definere tilpassede forhold via `Resolve.ConditionNames` -alternativet [3].
Håndtering av uriktige forhold
- Vite: Hvis forholdene ikke er strukturert riktig eller Vite velger en feil eksport, kan det føre til runtime -feil. Nøye strukturering av `Eksports -feltet er avgjørende [1].
- Rollup: Rollup vil logge advarsler hvis det møter problemer med `Eksports -feltet, men kan fremdeles løse et inngangspunkt [2].
- Webpack: Webpack vil logge feil hvis feltet `Eksport` er misdannet eller hvis det ikke kan løse et inngangspunkt [3].
Monorepo Support
- Vite: Oppdager automatisk koblede avhengigheter i en monorepo og behandler dem som kildekode, og analyserer deres avhengigheter i stedet for å samle dem [4].
- Rollup: Krever bruk av plugins som `@rollup/plugin-alias` for å håndtere koblede avhengigheter i en monorepo [2].
- Webpack: Krever bruk av plugins som `Forbedret oppløsning 'for å håndtere koblede avhengigheter i en monorepo [3].
Oppsummert er Vites håndtering av nestede forhold lik andre bundlere, men det har noen fordeler som automatisk MonorePo -støtte og en mer robust tillatt forholdsliste. Imidlertid krever alle bundlers nøye strukturering av feltet `Eksporter for å unngå problemer.
Sitasjoner:[1] https://v2.vitejs.dev/config/
[2] https://vitejs.dev/guide/features
[3] https://vitejs.dev/guide/dep-pre-bundling
[4] https://vitejs.dev/guide/build
[5] https://vitejs.dev/config/shared-options