Publica fuentes de Beyond en npm
Publica un paquete como fuentes de Beyond para que el CDN lo reconozca y compile sus módulos públicos mediante Packages.
- Disponibilidad: Planificado
- Evidencia: Leído del código fuente
- Guía práctica
Estado inicial
Tienes un paquete de Beyond con módulos públicos, y quieres que las aplicaciones del CDN puedan depender de él. Hay dos formas de publicación. Esta guía cubre la forma source: publicas tus fuentes, y el CDN compila los módulos públicos que las aplicaciones realmente alcanzan. Para la otra forma, consulta Publica una distribución precompilada.
Elige la forma source cuando quieras que el CDN produzca salidas para las condiciones y los formatos que pide cada aplicación, con la versión del compilador que ejecuta el CDN.
Declara la forma
Un paquete indica cómo fue publicado en el campo beyond.publication de su package.json:
{
"name": "@acme/shop",
"version": "1.4.0",
"type": "module",
"beyond": {
"publication": { "protocol": "beyond-publication/1", "form": "source", "modules": "modules" }
}
}| Miembro | Obligatorio | Significado |
|---|---|---|
protocol |
Sí | beyond-publication/1 |
form |
Sí | source |
modules |
No | La raíz, relativa al paquete, de las fuentes de los módulos públicos. Cuando no se indica se aplica el valor predeterminado del paquete. |
El campo es el único discriminador. Las extensiones de archivo y la estructura de directorios nunca deciden la forma.
Publica
Publica el paquete en tu registro con tus herramientas habituales de npm, y asegúrate de que el archivo incluya las fuentes de tus módulos públicos.
Úsalo desde una aplicación
Nombra el paquete en un target o en las selections de un registro. Durante la preparación, el CDN descarga la versión fijada, verifica su integridad, lee el campo y compila solo los módulos públicos alcanzables desde las entradas de la aplicación.
Fallos y límites
| Situación | Resultado |
|---|---|
El campo está presente y no es válido: "publication": true, falta protocol, un form desconocido |
Un error. Nunca se trata como un paquete npm común. |
El campo mezcla miembros de ambas formas, como modules junto con compiler |
Se rechaza: un campo no puede describir las dos formas |
protocol es una versión posterior a la que conoce el CDN |
UNSUPPORTED_INPUT |
| Un módulo público no compila | El trabajo de preparación falla con BUILD_FAILED y sus diagnósticos. El release activo no se toca. |
- Los archivos fuente internos no se convierten en módulos públicos por estar publicados. Solo se pueden direccionar los módulos públicos del paquete.
- Un import dinámico con un destino calculado debe declararse; de lo contrario el cierre no se puede completar. Consulta Preparación e inventario.
- Un paquete cuyos módulos públicos comparten archivos privados se informa como no compatible, porque el código se divide solo por módulo público y nada se divide más allá de eso. Los componentes de Svelte y de Shoelace son casos conocidos.