Skip to content

Commit 14ae617

Browse files
authored
Merge branch 'main' into call-endpoints-mdx
2 parents f135492 + 40e7865 commit 14ae617

1 file changed

Lines changed: 109 additions & 0 deletions

File tree

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
title: Personalizar los nombres de los archivos en el resultado de la compilación
3+
description: Aprende a cambiar el patrón de nomenclatura predeterminado para tus recursos compilados, como JavaScript, CSS e imágenes en Astro mediante las opciones de Rollup de Vite.
4+
i18nReady: true
5+
type: recipe
6+
---
7+
8+
import { Steps } from '@astrojs/starlight/components';
9+
import { FileTree } from '@astrojs/starlight/components';
10+
import ReadMore from '~/components/ReadMore.astro';
11+
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro';
12+
13+
Por defecto, el comando `astro build` genera los recursos compilados a partir de [el código fuente de tu proyecto](/es/basics/project-structure/#src), como los archivos JavaScript y CSS ubicados en el directorio `src/`, y los guarda en un directorio `_astro` con nombres de archivo con hash (p. ej., `_astro/index.DRf8L97S.js`), lo cual resulta ideal para el almacenamiento en caché a largo plazo.
14+
15+
Aunque normalmente no es necesario, puedes personalizar los nombres de los archivos de salida cuando sea preciso. Por ejemplo, esto puede resultar útil si tienes scripts con nombres que podrían activar los bloqueadores de anuncios (p. ej., `ads.js`), o si deseas organizar tus recursos siguiendo una convención de nomenclatura concreta. Al personalizar las opciones de salida de Rollup, puedes obtener un mayor control sobre la estructura de compilación de tu proyecto, lo que te permite cumplir con requisitos específicos de organización o implementación.
16+
17+
## Receta
18+
19+
Esta receta configura `vite.environments.client.build.rollupOptions` para generar recursos compilados con la siguiente estructura y patrón de nomenclatura:
20+
- Archivos de JavaScript (p. ej., scripts directamente asociados a tus páginas o diseños): `dist/js/[name]-[hash].js`
21+
- Fragmentos de código JavaScript divididos (p. ej., componentes importados dinámicamente o módulos compartidos): `dist/js/chunks/[name]-[hash].js`
22+
- Otros recursos (p. ej., CSS, imágenes, fuentes): `dist/static/[name]-[hash][extensión]` (p. ej., `dist/static/styles-a1b2c3d4.css`, `dist/static/logo-e5f6g7h8.svg`)
23+
24+
<Steps>
25+
26+
1. Agregar opciones de salida de Vite Rollup.
27+
28+
Modifica tu archivo `astro.config.mjs` para incluir la siguiente configuración de `vite.environments.client.build.rollupOptions.output`. Aquí es donde puedes definir los patrones de nomenclatura personalizados para tus recursos usando los [`entryFileNames`](https://rollupjs.org/configuration-options/# output-entryfilenames), [`chunkFileNames`](https://rollupjs.org/configuration-options/#output-chunkfilenames) y [`assetFileNames`](https://rollupjs.org/configuration-options/#output-assetfilenames) de Rollup:
29+
30+
```javascript title="astro.config.mjs" ins
31+
import { defineConfig } from 'astro/config';
32+
33+
export default defineConfig({
34+
// ...
35+
vite: {
36+
environments: {
37+
client: {
38+
build: {
39+
rollupOptions: {
40+
output: {
41+
// nombres de ruta relativos a `outDir`
42+
entryFileNames: 'js/[name]-[hash].js',
43+
chunkFileNames: 'js/chunks/[name]-[hash].js',
44+
assetFileNames: 'static/[name]-[hash][extname]',
45+
},
46+
},
47+
},
48+
},
49+
},
50+
},
51+
});
52+
```
53+
54+
En este ejemplo se usan los siguientes elementos provisionales de nombre de archivo:
55+
* `[name]`: El nombre original del archivo (sin la extensión ni la ruta).
56+
* `[hash]`: Un hash basado en el contenido generado para el archivo, fundamental para evitar el almacenamiento en caché. También puedes especificar una longitud, p. ej., `[hash:8]`. Esto garantiza que, al actualizar un recurso, cambie el nombre del archivo, lo que obliga a los navegadores a descargar la nueva versión en lugar de mostrar una versión obsoleta almacenada en caché.
57+
* `[extname]`: La extensión original del archivo, incluido el punto inicial (p. ej., `.js`, `.css`, `.svg`).
58+
59+
<ReadMore>
60+
Para consultar la lista completa de provisionales y patrones avanzados disponibles para estas opciones, consulta la [documentación sobre la configuración de Rollup](https://rollupjs.org/configuration-options/).
61+
</ReadMore>
62+
63+
2. Compila tu proyecto.
64+
65+
Dado que estas personalizaciones de los nombres de archivo solo se aplican al resultado de la compilación de producción, tendrás que ejecutar el comando de compilación de tu proyecto:
66+
67+
<PackageManagerTabs>
68+
<Fragment slot="npm">
69+
```shell
70+
npm run build
71+
```
72+
</Fragment>
73+
<Fragment slot="pnpm">
74+
```shell
75+
pnpm build
76+
```
77+
</Fragment>
78+
<Fragment slot="yarn">
79+
```shell
80+
yarn build
81+
```
82+
</Fragment>
83+
</PackageManagerTabs>
84+
85+
3. Una vez finalizada la compilación, comprueba tu [directorio de salida](/es/reference/configuration-reference/#outdir) (`dist/` por defecto).
86+
87+
Comprueba que los recursos de compilación del directorio `src` de tu proyecto estén nombrados y organizados según los nuevos patrones. (Los archivos del [directorio `public/`](/es/basics/project-structure/#public) se copian directamente al directorio de salida y no se ven afectados por estas opciones de nomenclatura de Rollup.)
88+
89+
En función del contenido específico de tu proyecto, tu carpeta de compilación tendrá ahora un aspecto similar al siguiente:
90+
91+
<FileTree>
92+
- dist/
93+
- js/
94+
- index-a1b2c3d4.js
95+
- chunks/
96+
- common-e5f6g7h8.js
97+
- img/
98+
- logo-i9j0k1l2.png
99+
- fonts/
100+
- myfont-q2w3e4r5.woff2
101+
- static_assets/
102+
- styles-m3n4o5p6.css
103+
- index.html
104+
- about/
105+
- index.html
106+
- ... (otros archivos HTML y recursos públicos)
107+
</FileTree>
108+
109+
</Steps>

0 commit comments

Comments
 (0)