Vites hantering av kapslade förhållanden i villkorad export liknar andra moderna bundlers som rullning och webbpack, men med några viktiga skillnader:
häckning och specificitetsordning
- Vite: Förhållandena kan kapslas i fältet "Export" i "Package.json". De bör specificeras från mest specifika till minst specifika. Vite matchar det första villkoret som är i dess tillåtna villkorslista [1].
- Upprullning: Upprullning stöder kapslade förhållanden i fältet "Export", enligt samma specificitetsordning som Vite [2].
- Webpack: Webpack stöder också kapslade villkor i fältet "Export", vilket kräver samma specificitetsordning som Vite och Rollup [3].
Tillåtna villkor
- Vite: Har en fördefinierad lista över tillåtna villkor som inkluderar `Import ',' modul ',' webbläsare ',' standard 'och miljöspecifika förhållanden som' produktion 'eller' utveckling '. Alternativet "Resolve.Conditions" kan lägga till mer [1].
- RULLUP: Tillåter att specificera anpassade villkor via alternativen "Preservemodules" och "Preservemodulesroot" [2].
- Webpack: Tillåter att definiera anpassade villkor via alternativet `Resolve.ConditionNames` [3].
Hantera felaktiga förhållanden
- Vite: Om förhållandena inte är strukturerade korrekt eller Vite väljer en felaktig export kan det leda till runtime -fel. Noggrann strukturering av fältet "Export" är avgörande [1].
- Upprullning: Rullning kommer att logga varningar om det möter problem med fältet "Export", men kan fortfarande lösa en startpunkt [2].
- Webpack: Webpack loggar fel om fältet "Export" är felformat eller om det inte kan lösa en startpunkt [3].
Monorepo Support
- Vite: Detekterar automatiskt länkade beroenden i ett monorepo och behandlar dem som källkod och analyserar deras beroenden istället för att samla dem [4].
- ROLLUP: kräver att du använder plugins som `@rollup/plugin-alias` för att hantera länkade beroenden i ett monorepo [2].
- Webpack: kräver att du använder plugins som `förbättrad resolve` för att hantera länkade beroenden i ett monorepo [3].
Sammanfattningsvis liknar Vites hantering av kapslade förhållanden andra Bundlers, men det har vissa fördelar som automatisk Monorepo -stöd och en mer robust tillåtna villkorslista. Men alla bundare kräver noggrann strukturering av fältet "Export" för att undvika problem.
Citeringar:[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