You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/config/build-options.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -247,6 +247,8 @@ Indica si se debe generar un archivo de manifiesto que contenga un mapeo de nomb
247
247
248
248
Cuando el valor es una cadena, se usará como la ruta del archivo de manifiesto relativa a `build.outDir`. Cuando se establece en `true`, la ruta será `.vite/manifest.json`.
249
249
250
+
Si estás escribiendo un plugin y necesitas inspeccionar los CSS relacionados y recursos estáticos de cada fragmento o recurso de salida durante la compilación, también puedes usar la [API de metadatos del paquete de salida `viteMetadata`](/guide/api-plugin#metadatos-del-paquete-de-salida).
Copy file name to clipboardExpand all lines: docs/guide/api-plugin.md
+38Lines changed: 38 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -466,6 +466,44 @@ Este hook no se invocará si estás utilizando un framework que tenga un manejo
466
466
}
467
467
```
468
468
469
+
## Metadatos del Paquete de Salida
470
+
471
+
Durante la compilación, Vite agrega un campo específico `viteMetadata` a los objetos de salida de compilación de Rolldown.
472
+
473
+
Esto está disponible a través de:
474
+
475
+
- `RenderedChunk` (por ejemplo en `renderChunk` y `augmentChunkHash`)
476
+
- `OutputChunk` y `OutputAsset` (por ejemplo en `generateBundle` y `writeBundle`)
477
+
478
+
`viteMetadata` proporciona:
479
+
480
+
- `viteMetadata.importedCss:Set<string>`
481
+
- `viteMetadata.importedAssets:Set<string>`
482
+
483
+
Esto es útil cuando se escriben plugins que necesitan inspeccionar CSS emitidos y recursos estáticos sin depender de [`build.manifest`](/config/build-options#build-manifest).
484
+
485
+
Ejemplo:
486
+
487
+
```ts [vite.config.ts]
488
+
functionoutputMetadataPlugin(): Plugin {
489
+
return {
490
+
name:'output-metadata-plugin',
491
+
generateBundle(_, bundle) {
492
+
for (constoutputofObject.values(bundle)) {
493
+
constcss=output.viteMetadata?.importedCss
494
+
constassets=output.viteMetadata?.importedAssets
495
+
if (!css?.size&&!assets?.size) continue
496
+
497
+
console.log(output.fileName, {
498
+
css: css ? [...css] : [],
499
+
assets: assets ? [...assets] : [],
500
+
})
501
+
}
502
+
},
503
+
}
504
+
}
505
+
```
506
+
469
507
## Orden de Plugins
470
508
471
509
Un plugin de Vite también puede especificar una propiedad `enforce` (similar a los cargadores de paquetes web) para ajustar su orden de aplicación. El valor de `enforce` puede ser `"pre"` o `"post"`. Los plugins resueltos estarán en el siguiente orden:
Copy file name to clipboardExpand all lines: docs/guide/assets.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,6 +119,12 @@ El directorio predeterminado es `<root>/public`, pero esto se puede configurar a
119
119
120
120
Ten en cuenta que siempre debes hacer referencia a los recursos de `public` utilizando una ruta absoluta desde la raíz. Por ejemplo, `public/icon.png` debería ser referenciado en el código fuente como `/icon.png`.
121
121
122
+
::: tip Elección entre importaciones y la carpeta `public`
123
+
124
+
En general, es preferible **importar recursos** a menos que necesites específicamente las garantías que proporciona la carpeta `public`.
125
+
126
+
:::
127
+
122
128
## new URL(url, import.meta.url)
123
129
124
130
[import.meta.url](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import.meta) es una característica nativa de ESM que expone la URL del módulo actual. Combinándolo con el [constructor de URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) nativo, podemos obtener la URL completa y resuelta de un recurso estático utilizando la ruta relativa de un Módulo JavaScript:
@@ -147,7 +153,7 @@ Durante la compilación para producción, Vite realizará las transformaciones n
Copy file name to clipboardExpand all lines: docs/guide/build.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ export default defineConfig({
95
95
})
96
96
```
97
97
98
-
Con el indicador `--watch` habilitado, los cambios en `vite.config.js`, así como cualquier archivo que se empaquete, desencadenarán una recompilación.
98
+
Con el indicador `--watch` habilitado, los cambios en los archivos que se empaquetan desencadenarán una recompilación. Ten en cuenta que los cambios en la configuración y sus dependencias requieren reiniciar el comando de compilación.
Copy file name to clipboardExpand all lines: docs/guide/dep-pre-bundling.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Cuando ejecutas `vite` por primera vez, Vite preempaqueta las dependencias de tu
6
6
7
7
Este es Vite realizando lo que llamamos "preempaquetado de dependencias". Este proceso tiene dos propósitos:
8
8
9
-
1.**Compatibilidad con CommonJS y UMD:** Durante el desarrollo, el desarrollador de Vite sirve todo el código como ESM nativo. Por lo tanto, Vite primero debe convertir las dependencias que se envían como CommonJS o UMD en ESM.
9
+
1.**Compatibilidad con CommonJS y UMD:** Durante el desarrollo, Vite sirve todo el código como ESM nativo. Por lo tanto, Vite primero debe convertir las dependencias que se envían como CommonJS o UMD en ESM.
10
10
11
11
Al convertir las dependencias de CommonJS, Vite realiza un análisis de importación inteligente para que las importaciones con nombre a los módulos de CommonJS funcionen como se espera, incluso si las exportaciones se asignan dinámicamente (por ejemplo, React):
Copy file name to clipboardExpand all lines: docs/guide/env-and-mode.md
+14-10Lines changed: 14 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,14 +33,14 @@ Algunas constantes incorporadas están disponibles en todos los casos:
33
33
34
34
Vite expone las variables de entorno bajo el objeto `import.meta.env` como cadenas automáticamente.
35
35
36
-
Para evitar la filtración accidental de variables de entorno al cliente, solo las variables prefijadas con `VITE_` se exponen en el código procesado por Vite. Por ejemplo, para las siguientes variables de entorno:
36
+
Las variables con el prefijo `VITE_` se expondrán en el código fuente del lado del cliente después del empaquetado de Vite. Para evitar la filtración accidental de variables de entorno al cliente, evita usar este prefijo. Como ejemplo, considera lo siguiente:
37
37
38
38
```[.env]
39
39
VITE_SOME_KEY=123
40
40
DB_PASSWORD=foobar
41
41
```
42
42
43
-
Solo `VITE_SOME_KEY`se expondrá como `import.meta.env.VITE_SOME_KEY` en el código fuente del cliente, pero `DB_PASSWORD` no.
43
+
El valor analizado de `VITE_SOME_KEY`– `"123"` – se expondrá en el cliente, pero el valor de `DB_PASSWORD` no. Puedes comprobar esto añadiendo lo siguiente a tu código:
@@ -53,6 +53,12 @@ Si deseas personalizar el prefijo de las variables de entorno, consulta la opci
53
53
Como se muestra arriba, `VITE_SOME_KEY` es un número pero devuelve una cadena cuando se analiza. Lo mismo ocurriría con las variables de entorno booleanas. Asegúrate de convertir al tipo deseado cuando las uses en tu código.
54
54
:::
55
55
56
+
:::warning Protección de secretos en el código fuente
57
+
58
+
Las variables `VITE_*` _no_ deben contener información sensible como claves de API. Los valores de estas variables se empaquetan en tu código fuente en tiempo de compilación. Para despliegues en producción, considera un servidor backend o funciones serverless/edge para proteger adecuadamente los secretos en el código fuente.
59
+
60
+
:::
61
+
56
62
### Archivos `.env`
57
63
58
64
Vite utiliza [dotenv](https://github.com/motdotla/dotenv) para cargar variables de entorno adicionales desde los siguientes archivos en tu [directorio de entorno](/config/shared-options.md#envdir):
@@ -93,14 +99,6 @@ NEW_KEY2=test\$foo # test$foo
93
99
NEW_KEY3=test$KEY # test123
94
100
```
95
101
96
-
:::warning NOTAS DE SEGURIDAD
97
-
98
-
- Los archivos `.env.*.local` son solo locales y pueden contener variables sensibles. Debes agregar `*.local` a tu `.gitignore` para evitar que se suban a git.
99
-
100
-
- Dado que cualquier variable expuesta en tu código fuente de Vite terminará en tu paquete de cliente, las variables `VITE_*` no deben contener información sensible.
101
-
102
-
:::
103
-
104
102
::: details Expansión de variables en orden inverso
105
103
106
104
Vite admite la expansión de variables en orden inverso.
@@ -118,6 +116,12 @@ Para evitar problemas de interoperabilidad, se recomienda evitar depender de est
118
116
119
117
:::
120
118
119
+
:::warning Ignorando archivos `.env` locales
120
+
121
+
Los archivos `.env.*.local` son solo locales y pueden contener variables sensibles. Debes agregar `*.local` a tu `.gitignore` para evitar que se suban a git.
122
+
123
+
:::
124
+
121
125
## IntelliSense para TypeScript
122
126
123
127
Por defecto, Vite proporciona definiciones de tipo para `import.meta.env` en [`vite/client.d.ts`](https://github.com/vitejs/vite/blob/main/packages/vite/client.d.ts). Si bien puedes definir más variables de entorno personalizadas en archivos `.env.[mode]`, es posible que desees obtener IntelliSense de TypeScript para las variables de entorno definidas por el usuario que tienen el prefijo `VITE_`.
Copy file name to clipboardExpand all lines: docs/guide/features.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,7 +71,7 @@ Esto se debe a que `esbuild` solo realiza la transpilación sin información de
71
71
72
72
Debes configurar `"isolatedModules": true` en el `tsconfig.json` en `compilerOptions`, para que TS te advierta sobre las funcionalidades omitidas con la transpilación aislada.
73
73
74
-
Si una dependencia no funciona bien con `"isolatedModules": true`, puedes usar `"skipLibCheck": true` para suprimir temporalmente los errores hasta que se solucione.
74
+
Si una dependencia no funciona bien con `"isolatedModules": true`, puedes usar `"skipLibCheck": true` para suprimir temporalmente los errores hasta que se solucione de forma upstream.
Copy file name to clipboardExpand all lines: docs/guide/philosophy.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ Vite se ha centrado en el rendimiento desde sus [orígenes](./why.md). Su arquit
20
20
21
21
## Construyendo Frameworks de Trabajo sobre Vite
22
22
23
-
Aunque Vite se puede utilizar directamente por los usuarios, brilla como una herramienta para crear frameworks. El núcleo de Vite es independiente del framework, pero existen plugins pulidos para cada framework de interfaz de usuario (IU). Su [API en JavaScript](./api-javascript.md) permite a los autores de frameworks de aplicaciones utilizar las funcionalidades de Vite para crear experiencias personalizadas para sus usuarios. Vite incluye soporte para [primitivos de SSR](./ssr.md), que generalmente están presentes en herramientas de nivel superior pero que son fundamentales para construir web frameworks modernos. Y los plugins de Vite completan el panorama al ofrecer una forma de compartir entre diferentes frameworks. Vite también es una excelente opción cuando se combina con [frameworks de backend](./backend-integration.md) como [Ruby](https://vite-ruby.netlify.app/) y [Laravel](https://laravel.com/docs/10.x/vite).
23
+
Aunque Vite se puede utilizar directamente por los usuarios, brilla como una herramienta para crear frameworks. El núcleo de Vite es independiente del framework, pero existen plugins pulidos para cada framework de interfaz de usuario (IU). Su [API en JavaScript](./api-javascript.md) permite a los autores de frameworks de aplicaciones utilizar las funcionalidades de Vite para crear experiencias personalizadas para sus usuarios. Vite incluye soporte para [primitivos de SSR](./ssr.md), que generalmente están presentes en herramientas de nivel superior pero que son fundamentales para construir web frameworks modernos. Y los plugins de Vite completan el panorama al ofrecer una forma de compartir entre diferentes frameworks. Vite también es una excelente opción cuando se combina con [frameworks de backend](./backend-integration.md) como [Ruby](https://vite-ruby.netlify.app/) y [Laravel](https://laravel.com/docs/vite).
0 commit comments