[go: up one dir, main page]

Skip to content

Migración desde v5

API de Entorno

Como parte de la nueva API de Entorno experimental, se necesitó una gran reestructuración interna. Vite 6 se esfuerza por evitar cambios incompatibles para asegurar que la mayoría de los proyectos puedan actualizarse rápidamente a la nueva versión mayor. Esperaremos hasta que una gran parte del ecosistema se haya trasladado para estabilizar y comenzar a recomendar el uso de las nuevas API. Pueden haber algunos casos extremos, pero estos solo deberían afectar el uso de bajo nivel por parte de frameworks y herramientas. Hemos trabajado con los mantenedores del ecosistema para mitigar estas diferencias antes del lanzamiento. Por favor, inicia un reporte si encuentras una regresión.

Algunas API internas han sido eliminadas debido a cambios en la implementación de Vite. Si dependías de alguna de ellas, por favor crea una solicitud de función.

API de Ejecución de Vite

La API experimental de Ejecución de Vite evolucionó a la API de Ejecutores de Módulos, lanzada en Vite 6 como parte de la nueva API de Entorno experimental. Dado que la característica era experimental, la eliminación de la API anterior introducida en Vite 5.1 no es un cambio incompatible, pero los usuarios necesitarán actualizar su uso al equivalente de Ejecutores de Módulos como parte de la migración a Vite 6.

Cambios Generales

Valor predeterminado para resolve.conditions

Este cambio no afecta a los usuarios que no configuraron resolve.conditions / ssr.resolve.conditions / ssr.resolve.externalConditions.

En Vite 5, el valor predeterminado para resolve.conditions era [] y algunas condiciones se agregaban internamente. El valor predeterminado para ssr.resolve.conditions era el valor de resolve.conditions.

Desde Vite 6, algunas de las condiciones ya no se agregan internamente y deben ser incluidas en los valores de configuración.

Las condiciones que ya no se agregan internamente para:

  • resolve.conditions son ['module', 'browser', 'development|production']
  • ssr.resolve.conditions son ['module', 'node', 'development|production']

Los valores por defecto para esas opciones se actualizan a los valores correspondientes y ssr.resolve.conditions ya no utiliza resolve.conditions como valor por defecto. Ten en cuenta que development|production es una variable especial que se reemplaza por production o development dependiendo del valor de process.env.NODE_ENV. Estos valores por defecto se exportan desde vite como defaultClientConditions y defaultServerConditions.

Si especificaste un valor personalizado para resolve.conditions o ssr.resolve.conditions, debes actualizarlo para incluir las nuevas condiciones.

Por ejemplo, si antes especificabas ['custom'] para resolve.conditions, ahora debes especificar ['custom', ...defaultClientConditions].

JSON stringify

En Vite 5, cuando se establece json.stringify: true, se desactivaba json.namedExports.

En Vite 6, incluso cuando se establece json.stringify: true, json.namedExports no se desactiva y su valor es respetado. Si deseas obtener el comportamiento anterior, puedes establecer json.namedExports: false.

Vite 6 también introduce un nuevo valor predeterminado para json.stringify, que es 'auto', y solo convertirá a cadena los archivos JSON grandes. Para desactivar este comportamiento, establece json.stringify: false.

Soporte extendido para referencias de recursos en elementos HTML

En Vite 5, solo algunos elementos HTML compatibles podían hacer referencia a recursos que serían procesados y agrupados por Vite, como <link href>, <img src>, etc.

Vite 6 extiende el soporte a aún más elementos HTML. La lista completa se puede encontrar en la documentación de características de HTML.

Para deshabilitar el procesamiento de HTML en ciertos elementos, puedes agregar el atributo vite-ignore en el elemento.

postcss-load-config

postcss-load-config se ha actualizado a la versión 6 desde la v4. Ahora se requiere tsx o jiti para cargar archivos de configuración de postcss en TypeScript en lugar de ts-node. Además, ahora se requiere yaml para cargar archivos de configuración de postcss en YAML.

Sass ahora utiliza la API moderna por defecto

En Vite 5, la API legada se usaba por defecto para Sass. Vite 5.4 añadió soporte para la API moderna.

A partir de Vite 6, la API moderna se usa por defecto para Sass. Si aún deseas usar la API legacy, puedes configurar css.preprocessorOptions.sass.api: 'legacy' / css.preprocessorOptions.scss.api: 'legacy'. Sin embargo, ten en cuenta que el soporte para la API legacy será eliminado en Vite 7.

Para migrar a la API moderna, consulta la documentación de Sass.

Personalizar el nombre del archivo de salida de CSS en modo librería

En Vite 5, el nombre del archivo de salida de CSS en modo librería siempre era style.css y no se podía cambiar fácilmente a través de la configuración de Vite.

A partir de Vite 6, el nombre del archivo por defecto ahora usa "name" en package.json, similar a los archivos de salida JS. Si se configura build.lib.fileName con una cadena, el valor también se usará para el nombre del archivo CSS de salida. Para configurar explícitamente un nombre de archivo CSS diferente, puedes usar el nuevo build.lib.cssFileName.

Para migrar, si dependías del nombre del archivo style.css, deberías actualizar las referencias a él con el nuevo nombre basado en el nombre de tu paquete. Por ejemplo:

package.json
json
{
  "name": "my-lib",
  "exports": {
    "./style.css": "./dist/style.css"
    "./style.css": "./dist/my-lib.css"
  }
}

Si prefieres mantener style.css como en Vite 5, puedes establecer build.lib.cssFileName: 'style'.

Avanzado

Existen otros cambios incompatibles que solo afectan a algunos usuarios.

Migración desde v4

Consulta primero la Guía de migración desde v4 para ver los cambios necesarios para migrar tu aplicación a Vite 5, y luego continúa con los cambios en esta página.

Publicado bajo licencia MIT. (d6f114eb)