Saltar al contenido

Crear un proyecto: el asistente de Astro

Los requisitos reales de Astro 7 —Node 20 o 22—, el asistente npm create astro paso a paso, la elección de gestor de paquetes y plantilla, y el primer arranque del servidor de desarrollo con astro dev en el puerto 4321.

Requisitos: qué necesita Astro 7

Astro corre sobre Node.js, y en 2026 exige una línea LTS moderna: Node 20 o Node 22. Las versiones impares —19, 21, 23— son de vida corta y Astro no las soporta; Node 18 quedó fuera de mantenimiento y ha salido de la matriz de soporte. La regla práctica es sencilla: usa siempre la LTS par más reciente que tu entorno permita.

Shell
# comprueba tu version de Node antes de nadanode --version    # v20.x o v22.x, una LTS par# si gestionas varias versiones, fija una LTS con tu manejador# nvm use 22   |   fnm use 22   |   volta install node@22

Además de Node necesitas dos cosas más: una terminal donde ejecutar comandos y un editor con soporte para la sintaxis .astro. La extensión oficial de Astro aporta resaltado, autocompletado y diagnósticos en tiempo real; sin ella escribirás .astro a ciegas. En la práctica no es opcional: es parte del toolchain.

El asistente: npm create astro

El punto de entrada canónico es un solo comando. npm create astro@latest descarga y ejecuta la última versión del asistente de creación —el paquete create-astro— que te guía con unas pocas preguntas:

Shell
# lanza el asistente interactivonpm create astro@latest

El asistente pregunta, en orden, las cosas que definen el esqueleto del proyecto:

Sobre la plantilla, la elección importa más de lo que parece. La mínima te da lo justo —una página y la configuración base— y es la mejor forma de aprender, porque no hay nada mágico que no hayas puesto tú. Las plantillas con ejemplo traen estructura y contenido de muestra, útiles para ver un proyecto real pero ruidosas cuando estudias. Para esta guía, elige siempre la mínima.

Shell
# modo no interactivo: util para scripts y CInpm create astro@latest mi-proyecto -- \  --template minimal --install --git --yes

Cada bandera responde por adelantado a una pregunta del asistente: --template fija la plantilla, --install y --git automatizan esos pasos, y --yes acepta el resto de valores por defecto sin interacción.

El gestor de paquetes: una decisión temprana

Astro es agnóstico respecto al gestor de paquetes, pero la elección se queda con el proyecto: determina el fichero de lockfile y los comandos que teclearás a diario. Los cuatro grandes funcionan igual de bien.

Si no tienes una preferencia formada, npm es la opción segura: viene con Node y no exige instalar nada. pnpm es la favorita de muchos por su velocidad y por cómo comparte dependencias entre proyectos ahorrando disco. Lo decisivo no es cuál elijas, sino ser consistente: mezclar gestores en un mismo proyecto corrompe el lockfile y produce instalaciones irreproducibles.

Un detalle que se pasa por alto: ese lockfile —package-lock.json, pnpm-lock.yaml o el que corresponda— debe ir a git. Es lo que garantiza que tu equipo y tu servidor de CI instalen exactamente las mismas versiones que tú, hasta la última dependencia transitiva. Sin él, dos máquinas pueden acabar con árboles de dependencias distintos a partir del mismo package.json.

El primer arranque: astro dev

Con el proyecto andamiado y las dependencias instaladas, entra en la carpeta y arranca el servidor de desarrollo. El asistente te recuerda los comandos exactos al terminar, pero el patrón es universal:

Shell
cd mi-proyectonpm run dev          # alias del script que llama a astro dev

Astro levanta un servidor con recarga en caliente —HMR— e imprime la dirección local. Por defecto escucha en el puerto 4321:

Shell
npm run dev#  astro  v7.x  ready in 380 ms#  Local    http://localhost:4321/#  Network  use --host to expose

Abre esa URL y verás tu sitio. A partir de ahí, cada cambio que guardes en un .astro se refleja al instante sin recargar la página entera: es la promesa del compilador en Rust y de Vite 8 que viste en el nivel anterior, ahora en tu propia máquina.

Lo que tienes delante tras el andamiaje es deliberadamente poco: un package.json con astro como dependencia y los scripts dev, build y preview; un astro.config.mjs casi vacío; un tsconfig.json; una carpeta public con un favicon; y un src con una única página. Esa desnudez es una virtud —no hay convenciones ocultas que descifrar— y es justo el terreno que recorrerás en las próximas lecciones: la estructura de directorios, la configuración y el CLI.