VITE -ovo ravnanje z ugnezdenimi pogoji v pogojnem izvozu je podobno drugim sodobnim svežnji, kot sta Rolup in WebPack, vendar z nekaterimi ključnimi razlikami:
Naročilo gnezdenja in specifičnosti
- VITE: Pogoji se lahko gnezdijo v polju `Exports" "packal.json". Določiti jih je treba iz večine do najmanj specifičnih. Vite se bo ujemal s prvim pogojem, ki je na seznamu dovoljenih pogojev [1].
- Zbirka: RollUp podpira ugnezdene pogoje v polju "Exports" po enakem vrstnem redu kot Vite [2].
- WebPack: WebPack podpira tudi ugnezdene pogoje v polju "Exports", ki zahteva enako vrstni red specifičnosti kot Vite in Rollup [3].
Dovoljeni pogoji
- Vite: Ima vnaprej določen seznam dovoljenih pogojev, ki vključuje `Import`,` module`, `brskalnik`,` privzeto` in okoljsko specifične pogoje, kot sta "Production" ali "razvoj". Možnost konfiguracije `Resolve.Conditions 'lahko doda več [1].
- Zbirka: Omogoča določitev pogojev po meri prek možnosti `CanderveModules` in` CreanervemoduleSroot` [2].
- WebPack: Omogoča določitev pogojev po meri prek možnosti `Resolve.Conditionnames` [3].
Ravnanje z napačnimi pogoji
- VITE: Če pogoji niso pravilno strukturirani ali Vite izbere napačen izvoz, lahko privede do napak v izvajanju. Pozorno strukturiranje polja "izvoz" je ključnega pomena [1].
- RollUp: Rollup bo zabeležil opozorila, če naleti na težave s poljem "izvoz", vendar lahko še vedno reši vstopno točko [2].
- WebPack: Webpack bo zabeležil napake, če je polje `Exports 'napačno oblikovano ali če ne more rešiti vstopne točke [3].
Monorepo Podpora
- VITE: samodejno zazna povezane odvisnosti v monorepu in jih obravnava kot izvorno kodo, pri čemer analizira njihove odvisnosti, namesto da bi jih združili [4].
- RollUp: Za obdelavo povezanih odvisnosti v monorepo [2] zahteva uporabo vtičnikov, kot je `@rolup/plugin-alias`.
- WebPack: Za obdelavo povezanih odvisnosti v monorepo [3] je treba uporabiti vtičnike, kot je "Enhanced-Resolve".
Če povzamemo, je Viteovo ravnanje z gnezdenimi pogoji podobno drugim paketom, vendar ima nekatere prednosti, kot so samodejna podpora Monorepo in močnejši seznam dovoljenih pogojev. Vendar pa vsi svežnji zahtevajo skrbno strukturiranje polja "izvoz", da se izognejo težavam.
Navedbe:[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