Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions src/content/docs/es/reference/experimental-flags/rust-compiler.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
title: Compilador experimental en Rust
sidebar:
label: Compilador en Rust
i18nReady: true
---

import Since from '~/components/Since.astro'
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'

<p>

**Type:** `boolean`<br />
**Default:** `false`<br />
<Since v="6.0.0" />
</p>

Habilita el uso del nuevo compilador de Astro basado en Rust para archivos Astro. Este compilador es más rápido, ofrece mejores mensajes de error y, en general, mejor soporte para funcionalidades modernas de JavaScript, TypeScript y CSS.

En una futura versión mayor, Astro usará este nuevo compilador por defecto, pero puedes adelantar ese comportamiento usando el flag `experimental.rustCompiler`.

Para dar feedback sobre el compilador o seguir su desarrollo, consulta la [RFC del nuevo compilador de Astro](https://github.com/withastro/roadmap/discussions/1306).

## Uso

Este flag experimental no requiere uso específico y solo afecta a qué compilador usa Astro en tu proyecto.

Para habilitar el compilador en Rust, agrega lo siguiente en tu `astro.config.mjs`:

```js title="astro.config.mjs" ins={4-6}
import { defineConfig } from "astro/config";

export default defineConfig({
experimental: {
rustCompiler: true
}
});
```

y luego instala el paquete `@astrojs/compiler-rs` en tu proyecto:

<PackageManagerTabs>
<Fragment slot="npm">
```shell
npm install @astrojs/compiler-rs
```
</Fragment>
<Fragment slot="pnpm">
```shell
pnpm add @astrojs/compiler-rs
```
</Fragment>
<Fragment slot="yarn">
```shell
yarn add @astrojs/compiler-rs
```
</Fragment>
</PackageManagerTabs>

### Diferencias esperadas

A diferencia del compilador actual de Astro (Go), este compilador experimental en Rust no corregirá automáticamente estructuras HTML inválidas. Por ejemplo, estos patrones se dejarán tal como están y ya no se corregirán:

- `<p><div>Bad nesting</div></p>` (en lugar de sacar el `div` fuera del `p`)
- `<p>My paragraph` (en lugar de añadir la etiqueta de cierre `</p>` faltante)

Esto significa que, si tus archivos Astro contienen HTML inválido, puedes ver un resultado distinto con el compilador en Rust respecto al compilador anterior, o encontrar errores durante el build.

## Limitaciones

Actualmente, el compilador en Rust no genera los metadatos necesarios para que las auditorías de la barra de herramientas de desarrollo funcionen correctamente.
Loading