El manejo de Vite de las condiciones anidadas en las exportaciones condicionales es similar a otros agrupadores modernos como el rollup y la webpack, pero con algunas diferencias clave:
Orden de anidación y especificidad
- Vite: las condiciones pueden anidarse en el campo `exportaciones` de` paquete.json`. Deben especificarse de la más específica a menos específica. Vite coincidirá con la primera condición que se encuentra en su lista de condiciones permitidas [1].
- Rollup: Rollup admite condiciones anidadas en el campo `Exports`, siguiendo el mismo orden de especificidad que VITE [2].
- Webpack: Webpack también admite condiciones anidadas en el campo `exportaciones ', lo que requiere el mismo orden de especificidad que VITE y Rollup [3].
Condiciones permitidas
- VITE: tiene una lista predefinida de condiciones permitidas que incluye `import", `módulo`,` navegador`, `predeterminado 'y condiciones específicas del entorno como' producción 'o` desarrollo'. La opción de configuración `resolve.conditions` puede agregar más [1].
- Rollup: permite especificar las condiciones personalizadas a través de las opciones `preservemodules` y` preservemoduleRoot` [2].
- Webpack: permite definir condiciones personalizadas a través de la opción `resolve.conditionNames` [3].
Manejo de condiciones incorrectas
- VITE: si las condiciones no están estructuradas correctamente o Vite selecciona una exportación incorrecta, puede conducir a errores de tiempo de ejecución. La estructuración cuidadosa del campo `exportaciones 'es crucial [1].
- Rollup: Rollup registrará advertencias si encuentra problemas con el campo 'Exports`, pero aún puede resolver un punto de entrada [2].
- Webpack: Webpack registrará errores si el campo `Exports` está malformado o si no puede resolver un punto de entrada [3].
Soporte de Monorepo
- VITE: detecta automáticamente las dependencias vinculadas en un monoreso y las trata como código fuente, analizando sus dependencias en lugar de agruparlas [4].
- Rollup: requiere el uso de complementos como `@rollup/plugin-alias` para manejar dependencias vinculadas en un monoreso [2].
- Webpack: requiere el uso de complementos como `mejorado-resolve` para manejar dependencias vinculadas en un monoreso [3].
En resumen, el manejo de las condiciones anidadas de Vite es similar a otros agrupadores, pero tiene algunas ventajas como soporte automático de monoreo y una lista de condiciones más robusta permitida. Sin embargo, todos los agrupadores requieren una estructuración cuidadosa del campo 'exportaciones' para evitar problemas.
Citas:[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