Vites håndtering af indlejrede forhold i betinget eksport svarer til andre moderne bundlere som rollup og webpack, men med nogle vigtige forskelle:
Nesting og specificitetsordre
- VITE: Forholdene kan indlejres i feltet 'Eksport' package.json '. De skal specificeres fra mest specifikke til mindst specifikke. Vite vil matche den første betingelse, der er på listen over tilladte betingelser [1].
- Rollup: Rollup understøtter indlejrede forhold i feltet `Eksport 'efter den samme specificitetsordre som Vite [2].
- Webpack: Webpack understøtter også indlejrede forhold i feltet 'Eksport', hvilket kræver den samme specificitetsordre som Vite og Rollup [3].
tilladte betingelser
- Vite: Har en foruddefineret liste over tilladte betingelser, der inkluderer 'import', 'modul', 'browser', 'standard' og miljøspecifikke forhold som 'produktion' eller 'udvikling'. Indstillingen 'Resolution.Conditions' kan tilføje mere [1].
- Rollup: Tillader at specificere brugerdefinerede betingelser via `Conservemodules 'og` ConservemodulesRoot` -indstillingerne [2].
- Webpack: Tillader at definere brugerdefinerede betingelser via indstillingen 'ResolD.ConditionNames' [3].
Håndtering af forkerte betingelser
- Vite: Hvis betingelserne ikke er struktureret korrekt, eller Vite vælger en forkert eksport, kan det føre til runtime -fejl. Omhyggelig strukturering af feltet 'Eksport' er afgørende [1].
- Rollup: Rollup logger advarsler, hvis det støder på problemer med feltet 'Eksport', men kan stadig løse et indgangspunkt [2].
- Webpack: Webpack vil logge fejl, hvis feltet 'Eksport' er misdannet, eller hvis det ikke kan løse et indgangspunkt [3].
Monorepo support
- Vite: Detekterer automatisk sammenhængende afhængigheder i en monorepo og behandler dem som kildekode og analyserer deres afhængigheder i stedet for at bundte dem [4].
- Rollup: Kræver brug af plugins som `@rollup/plugin-alias` til at håndtere sammenkoblede afhængigheder i en monorepo [2].
- Webpack: Kræver brug af plugins som `forbedret reserves 'til at håndtere sammenkoblede afhængigheder i en monorepo [3].
Sammenfattende ligner Vites håndtering af indlejrede forhold til andre bundlere, men det har nogle fordele som automatisk monorepo -support og en mere robust tilladte betingelser. Imidlertid kræver alle bundlere omhyggelig strukturering af feltet 'Eksport' for at undgå problemer.
Citater:[1] https://v2.vitejs.dev/config/
[2] https://vitejs.dev/guide/features
[3] https://vitejs.dev/guide/dep-pebundling
[4] https://vitejs.dev/guide/build
[5] https://vitejs.dev/config/shared-options