A Vite beágyazott körülményeinek a feltételes exportban történő kezelése hasonló a többi modern csomagolóhoz, mint például a Rollup és a Webpack, de néhány kulcsfontosságú különbséggel:
fészkelési és specifitási sorrend
- Vite: A feltételek beágyazhatók a `csomag.json '` Export' mezőjében. Ezeket meg kell határozni a leginkább a legkevésbé specifikus. A Vite megegyezik az első feltételekkel, amelyek a megengedett feltételek listájában vannak [1].
- Rollup: A Rollup támogatja a beágyazott körülményeket az `Export 'mezőben, ugyanolyan specifitási sorrendet követve, mint a Vite [2].
- Webpack: A WebPack támogatja a beágyazott feltételeket az `Exports 'mezőben, ugyanolyan specifitási sorrendet igényel, mint a Vite és a Rollup [3].
Megengedett feltételek
- Vite: Van egy előre definiált listája a megengedett feltételekről, amelyek magukban foglalják az „import”, „modul”, „böngésző”, „alapértelmezett” és a környezet-specifikus feltételeket, mint például a „produkció” vagy a „fejlesztés”. A „Resolve.Conditions” konfigurációs opció még többet adhat hozzá [1].
- RollUp: Lehetővé teszi az egyéni feltételek meghatározását a „tartósítószer” és a „tartósítószer -doDulesroot” opciókon keresztül [2].
- Webpack: Lehetővé teszi az egyéni feltételek meghatározását a `Resolation.conditionNames` opción keresztül [3].
Helytelen feltételek kezelése
- Vite: Ha a feltételek nem megfelelően vannak felépítve, vagy a Vite helytelen exportot választ, akkor futásidejű hibákhoz vezethet. Az „export” mező gondos felépítése döntő jelentőségű [1].
- Rollup: A Rollup naplózási figyelmeztetéseket fog naplózni, ha problémák merülnek fel az „Exportok” mezővel, de mégis megoldhatja a belépési pontot [2].
- Webpack: A Webpack naplózási hibákat fog naplózni, ha az `Exports 'mező hibás, vagy ha nem tudja megoldani a belépési pontot [3].
Monorepo támogatás
- Vite: automatikusan felismeri a kapcsolódó függőségeket egy monorepóban, és forráskódként kezeli őket, a függőségük elemzésével, ahelyett, hogy összekapcsolnák őket [4].
- Rollup: A linkelt függőségek kezeléséhez a „@rollup/plugin-alias” beépülő modulok használatát megköveteli [2].
- Webpack: A csatlakoztatott függőségek kezeléséhez olyan pluginok használatához van szükség, mint a „továbbfejlesztett resolve”.
Összefoglalva: a Vite beágyazott körülményeinek kezelése hasonló a többi csomagolóhoz, de van néhány előnye, mint például az automatikus Monorepo támogatás és egy robusztusabb megengedett feltételek listája. A problémák elkerülése érdekében azonban minden csomagológép gondos felépítést igényel az „Export” mezőnek.
Idézetek:[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