Vite: n sisäkkäisten olosuhteiden käsittely ehdollisessa viennissä on samanlainen kuin muut nykyaikaiset niput, kuten Rollup ja Webpack, mutta joillakin keskeisillä eroilla:
Pesä- ja spesifisyysjärjestys
- Vite: Edellytykset voidaan sisäkkäistä `packet.json` -kentän" vienti "-kenttään. Ne tulisi määritellä erityisimmistä vähiten erityisistä. Vite vastaa ensimmäistä ehtoa, joka on sallittujen olosuhteiden luettelossa [1].
- Rollup: Rollup tukee sisäkkäisiä olosuhteita `Vie` -kentässä, seuraavan saman spesifisyysjärjestyksen kuin Vite [2].
- WebPack: Webpack tukee myös sisäkkäisiä olosuhteita `Vie` -kentällä, mikä vaatii saman spesifisyysjärjestyksen kuin Vite ja Rollup [3].
Sallitut olosuhteet
- Vite: Siinä on ennalta määritetty luettelo sallituista olosuhteista, jotka sisältävät `tuontia`,` moduulia`, `selain`,` oletusarvot ”ja ympäristökohtaiset olosuhteet, kuten` tuotanto "tai" kehitys ". `Resolve.Conditions` -määritysvaihtoehto voi lisätä lisää [1].
- Rollup: Mahdollistaa mukautettujen olosuhteiden määrittämisen `Preservemodules` ja` PreservemodulesRoot` -vaihtoehtojen kautta [2].
- Webpack: Mahdollistaa mukautettujen olosuhteiden määrittelemisen `resolve.conditionNames` -vaihtoehdon [3] kautta.
Väärien olosuhteiden käsittely
- Vite: Jos olosuhteita ei ole rakennettu oikein tai Vite valitsee virheellisen viennin, se voi johtaa suoritusvirheisiin. "Vienti" -kentän huolellinen jäsentäminen on ratkaisevan tärkeää [1].
- Rollup: Rollup kirjaa varoitukset, jos se kohtaa "vienti" -kentän ongelmia, mutta se voi silti ratkaista lähtökohdan [2].
- WebPack: Webpack kirjautuu virheisiin, jos `vienti` -kenttä on epämuodostunut tai jos se ei pysty ratkaisemaan lähtökohtaa [3].
Monorepon tuki
- Vite: havaitsee automaattisesti linkitetyt riippuvuudet monorepossa ja kohtelee niitä lähdekoodina analysoimalla niiden riippuvuuksia niiden niputtamisen sijasta [4].
- Rollup: Vaatii laajennusten, kuten `@rulla/plugin-alias`, käyttäminen linkitettyjen riippuvuuksien käsittelemiseksi monorepossa [2].
- WebPack: Vaatii laajennusten, kuten `parannettujen resolve`, käyttäminen linkitettyjen riippuvuuksien käsittelemiseksi monorepossa [3].
Yhteenvetona voidaan todeta, että Vite: n sisäkkäisten olosuhteiden käsittely on samanlainen kuin muut niput, mutta sillä on joitain etuja, kuten automaattinen monorepon tuki ja vankemmat sallittujen olosuhteiden luettelo. Kaikki bundlerit vaativat kuitenkin "vienti" -kentän huolellista jäsentämistä ongelmien välttämiseksi.
Viittaukset:[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