@4xeverburga/alpine-spanishplus
Alpine Spanish Plus
Fork en español del tema Alpine de Nuxt, empaquetado como capa reutilizable para sitios basados en Nuxt Content.
Ver demo en vivo → (starter interno desplegado en GitHub Pages)
Características
- Capa de tema Nuxt: extiende configuración, layouts, componentes, estilos y utilidades
- Traducciones y adaptaciones al español
- Starter interno en
.starters/defaultpara validación de build
Instalación
npm install @4xeverburga/alpine-spanishplus
Luego extiende tu proyecto en nuxt.config.ts:
export default defineNuxtConfig({
extends: '@4xeverburga/alpine-spanishplus'
})
Despliegue: prerenderizado estático por defecto
Este tema genera el sitio como estático por defecto (routeRules: { '/**': { prerender: true } }), pensado para blogs de contenido donde todo se conoce en tiempo de build. Esto evita un problema real en Cloudflare Pages: @nuxt/content v3 fuerza su base de datos en tiempo de ejecución a Cloudflare D1 (binding DB) para cualquier ruta renderizada dinámicamente — sin una base D1 vinculada, cada ruta de contenido falla en el servidor y se ve como un 404 genérico ante el visitante, no como un error de base de datos.
Si tu proyecto necesita rutas realmente dinámicas (auth, datos en vivo, etc.), puedes desactivar el prerenderizado por ruta desde tu propio nuxt.config.ts:
export default defineNuxtConfig({
extends: '@4xeverburga/alpine-spanishplus',
routeRules: {
'/dashboard/**': { prerender: false }
}
})
Si despliegas en Cloudflare Pages, además del prerenderizado hay una limitación propia de Cloudflare a tener en cuenta: el preset cloudflare_pages genera un _worker.js con un _routes.json que tiene un tope duro de 100 entradas. Si tu sitio supera ese número de páginas prerenderizadas (artículos, por ejemplo), algunas páginas caen silenciosamente al worker en vez de servirse como archivos estáticos, reproduciendo el mismo problema de D1 solo para esas rutas. La solución es forzar el preset cloudflare_pages_static (que omite el worker por completo) en el build de Cloudflare:
export default defineNuxtConfig({
extends: '@4xeverburga/alpine-spanishplus',
nitro: {
preset: process.env.CF_PAGES ? 'cloudflare_pages_static' : undefined
}
})
Cualquier ruta de servidor propia (server/routes/*.ts) que no esté enlazada con un <a href> real en el sitio no será descubierta por el crawler de prerenderizado — agrégala explícitamente a nitro.prerender.routes en tu propio nuxt.config.ts.
En Vercel (u otros hosts sin este requisito de D1 ni límite de rutas) el mismo prerenderizado por defecto simplemente produce un sitio estático normal, sin configuración adicional.
Desarrollo local
pnpm install
pnpm dev # Levanta el starter interno
pnpm build # Compila el starter interno
Probar cambios sin publicar en npm
Opción 1: tarball (recomendada)
# En este repo
pnpm pack
# En tu proyecto consumidor
npm install ../nuxt-alpine-spanishplus/<archivo-generado>.tgz
Opción 2: dependencia local por ruta
En el package.json de tu proyecto consumidor, usa una dependencia tipo file: apuntando a este repo e instala dependencias.
Opción 3: link local
Vincula el paquete con pnpm link y úsalo como dependencia enlazada en tu proyecto.
CI/CD
| Workflow | Archivo | Rama | Descripción |
|---|---|---|---|
| ci-main | .github/workflows/ci.yml |
main |
Valida build en push y PR |
| ci-dev | .github/workflows/ci-dev.yml |
dev |
Valida build en push y PR |
| test | .github/workflows/test.yml |
main / dev |
Corre la suite de regresión de Vitest (test/theme.test.ts) |
| lighthouse | .github/workflows/lighthouse.yml |
PR hacia dev / main |
Audita rendimiento del starter interno contra .github/lighthouse/budget.json |
| publish | .github/workflows/publish.yml |
main / dev |
Publica en npm: latest desde main, -dev con dist-tag dev desde dev |
| demo | .github/workflows/demo.yml |
main |
Compila el starter interno (GITHUB_PAGES=true) y lo despliega en GitHub Pages |
Los workflows de publicación usan trusted publishing (OIDC) en lugar de tokens. Para configurarlo:
- En npmjs.com → paquete → Settings → Trusted Publisher
- Seleccionar GitHub Actions y completar:
- Organization or user:
4xeverburga - Repository:
alpine-theme - Workflow filename:
publish.yml
- Organization or user:
Licencia
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 3.3.0 | ^3.5.34 | MIT | |
| 3.2.3 | ^3.5.34 | MIT | |
| 3.2.2 | ^3.5.34 | MIT | |
| 3.2.1 | ^3.5.34 | MIT | |
| 3.2.0 | ^3.5.0 | MIT | |
| 3.1.1 | ^3.5.0 | MIT | |
| 3.0.1 | ^3.5.0 | MIT |
Pre-releases (42)
| Version | Released | Vue | License |
|---|---|---|---|
| 3.3.0-dev.4273c94 | ^3.5.34 | MIT | |
| 3.3.0-dev.83766b5 | ^3.5.34 | MIT | |
| 3.2.3-dev.bd4d546 | ^3.5.34 | MIT | |
| 3.2.3-dev.6013471 | ^3.5.34 | MIT | |
| 3.2.2-dev.c17fa4c | ^3.5.34 | MIT | |
| 3.2.2-dev.847cf10 | ^3.5.34 | MIT | |
| 3.2.2-dev.da49fda | ^3.5.34 | MIT | |
| 3.2.2-dev.95f3363 | ^3.5.34 | MIT | |
| 3.2.1-dev.e41c458 | ^3.5.34 | MIT | |
| 3.2.1-dev.75e7bd3 | ^3.5.34 | MIT | |
| 3.2.1-dev.cb679bc | ^3.5.34 | MIT | |
| 3.2.1-dev.8de09b3 | ^3.5.34 | MIT | |
| 3.2.1-dev.f05ba8e | ^3.5.34 | MIT | |
| 3.2.1-dev.b5e3373 | ^3.5.34 | MIT | |
| 3.2.1-dev.dace570 | ^3.5.34 | MIT | |
| 3.2.1-dev.23c4d28 | ^3.5.34 | MIT | |
| 3.2.1-dev.968f1ee | ^3.5.34 | MIT | |
| 3.2.1-dev.1fe42ae | ^3.5.34 | MIT | |
| 3.2.1-dev.1767a65 | ^3.5.34 | MIT | |
| 3.2.1-dev.7da0a75 | ^3.5.34 | MIT | |
| 3.2.1-dev.9cd5223 | ^3.5.34 | MIT | |
| 3.2.1-dev.4d68b79 | ^3.5.34 | MIT | |
| 3.2.1-dev.7af71ad | ^3.5.34 | MIT | |
| 3.2.1-dev.7405243 | ^3.5.34 | MIT | |
| 3.2.1-dev.756b6b1 | ^3.5.34 | MIT | |
| 3.2.1-dev.be5c0b1 | ^3.5.34 | MIT | |
| 3.2.0-dev.ac1f15b | ^3.5.34 | MIT | |
| 3.2.0-dev.d82d1ad | ^3.5.0 | MIT | |
| 3.2.0-dev.193951b | ^3.5.0 | MIT | |
| 3.2.0-dev.81ca6c8 | ^3.5.0 | MIT |
Showing the latest 30 of 42. See every release on npm