Desarrollar con Beyond
Cómo se organiza un proyecto de Beyond para quien desarrolla. Un workspace lista paquetes, un paquete publica módulos públicos, y los módulos se alcanzan entre sí solo por su especificador bare. Qué puedes ejecutar hoy, y qué no.
- Disponibilidad: Experimental
- Evidencia: Ejecución registrada
- Explicación
El modelo en un minuto
Un proyecto de Beyond es un workspace: un directorio cuyo beyond.json lista sus paquetes.
| Palabra | Qué es | Se declara en |
|---|---|---|
| Workspace | El directorio del proyecto. Un paquete que no está listado no existe para Beyond. No hay globs, y no se usan los workspaces de npm | beyond.json |
| Paquete | Un directorio con un nombre, una versión exacta, sus módulos públicos, sus dependencias y su bundler | package.json |
| Módulo público | Lo que otro código importa por un especificador bare como @project/app/main. Un module.json lo declara, con sus plataformas, su punto de entrada y, para un widget, su elemento; una entrada exports del paquete es una alternativa, y la forma en que un paquete publica una hoja de estilos sin código |
module.json, identidad/descubrimiento/bundler del paquete; exports opcional |
| Archivo interno | Cualquier otro archivo del directorio de un módulo. Los archivos internos se importan entre sí con rutas relativas, y nada fuera del módulo puede importarlos. Un archivo no es público por existir | Nada: es lo predeterminado |
La regla que sostiene el modelo: el código de un módulo público alcanza a otro módulo público solo por su especificador bare, nunca por una ruta relativa, aunque ambos estén en el mismo workspace. Beyond compila cada módulo público en su propio artefacto y conserva ese import bare en la salida. Una ruta relativa que cruce el límite copiaría el código del otro módulo dentro del tuyo.
Qué puedes hacer hoy
- Leer qué contiene un proyecto nuevo: La plantilla del proyecto.
- Publicar un módulo desde un paquete, y compartir código entre paquetes sin romper el límite: Paquetes y módulos públicos.
- Construir una página a partir de un módulo con su hoja de estilos, un recurso y mapas de código, y cambiar su CSS mientras está abierta: Tu primera interfaz.
- Compilar CSS, SCSS y Tailwind, compartir una hoja de estilos entre los widgets de un paquete y ver qué hace una hoja que falla: Estilos.
- Construir un widget React 19, Vue o Svelte con una dependencia con estilos, y actualizarlo en el lugar: Crear un widget Beyond.
- Ver cómo se solicitan por HTTP los módulos públicos compilados, con la misma dirección en un servidor de desarrollo y en el CDN: URL e identidades.
Qué no está disponible
Extender Beyond
Escribe un widget sin framework de vistas, o un adaptador para otro: Integrar un framework de vistas. Pon un widget en una página construida sin Beyond: Incrustar un widget en una página existente. Ejecuta módulos públicos en un servidor propio: Crear un entorno de ejecución modular. Enséñale al compilador un formato de fuente nuevo: Crear un bundler o un procesador.
- La plantilla del proyecto — Qué contiene un proyecto creado a partir de la plantilla beyond-web 0.1.0, cómo servirlo y previsualizarlo con la línea de comandos de Beyond, qué registra template.json, y los límites de esta versión de la plantilla.
- Paquetes y módulos públicos — Cómo publica un módulo un paquete en un proyecto creado a partir de la plantilla beyond-web, cómo agregar un módulo público y un paquete hermano cuyo import bare se conserva, y cómo comprobar cada cambio.
- Tu primera interfaz — Construye una página web a partir de un módulo público declarado por un module.json, con su propia hoja de estilos, un SVG declarado y mapas de código; sírvela con la línea de comandos de Beyond, mírala en un navegador, cambia su CSS sin recargar y solicita su salida de producción.
- Estilos — Cómo Beyond Packages compila y entrega las hojas de estilos de un módulo público: CSS y SCSS con parciales y un tema, Tailwind escaneando solo las fuentes que un módulo declara, seleccionar la hoja de estilos de otro módulo con .css, la hoja de estilos global compartida de un paquete, qué hace una hoja que falla y cómo un cambio llega a una página.
- Crear un widget Beyond — Construye un widget React 19 declarado por su module.json, dale una hoja de estilos Tailwind y una dependencia pública con estilos de otro paquete, míralo montarse en su propio shadow root, cambia su código y su CSS sin recargar, y haz lo mismo con una vista Vue o Svelte.
- Integrar un framework de vistas — Qué hace un controlador de widget por un framework de vistas, mostrado con un widget escrito sin ninguno, en HTML simple, con un controlador de cliente y uno de servidor; luego cómo hacen lo mismo los adaptadores React 19, Vue y Svelte suministrados, y qué debe asumir un adaptador nuevo.
- Incrustar un widget en una página existente — Pon un widget Beyond en una página que no fue construida con Beyond, desde otro origen, con los mismos estilos de dependencias y compartidos que tiene en su propia aplicación: el import map, el registro, dos instancias y qué pasa al quitarlo e insertarlo de nuevo.
- Crear un entorno de ejecución modular — Qué debe hacer un host que ejecuta módulos públicos de Beyond, mostrado con BEE Node y Deno: resolver identidades bare a través de un servicio de desarrollo o de la resolución de un release, un host Node que renderiza widgets en el servidor, la diferencia entre artefactos empaquetados y compuestos, y qué puede y qué no puede esperar un host de las actualizaciones.
- Crear un bundler o un procesador — Las dos maneras de enseñarle a Beyond Packages una nueva forma de compilar un módulo público, mostradas con los bundlers que incluye: un bundler escrito contra el contrato central de módulos, un bundler compuesto de procesadores con el SDK, y un procesador reutilizable con sus entradas, salidas, diagnósticos, dependencias y limpieza.
- Probar un paquete — Escribe archivos de prueba ordinarios para un paquete Beyond y ejecútalos con beyond test, el propio runner de pruebas de Node sobre los módulos públicos compilados; ubica un fallo en la fuente TypeScript, acota una ejecución, simula un módulo público, verifica comportamiento asíncrono, lee la cobertura sobre las fuentes y conecta un depurador.
- La referencia de beyond test — El contrato exacto de beyond test: la línea de comandos, cómo se recolectan los archivos de prueba, qué reciben los procesos de prueba, la barrera de compilación, los mocks de módulos, la cobertura, las identidades de archivo de los módulos servidos, la anulación en el manifiesto de módulo, los mensajes y los códigos de salida.
¿Buscas el lugar donde los proyectos se crean y se comparten con un equipo? Consulta Beyond Workspace y Projects.