Publica una distribución precompilada
Compila tu paquete antes de publicarlo y decláralo como distribución, para que el CDN entregue tus salidas en lugar de compilar tus fuentes.
- Disponibilidad: Planificado
- Evidencia: Leído del código fuente
- Guía práctica
Estado inicial
Quieres controlar la compilación tú: primero compilas el paquete y publicas el resultado. El CDN reconoce el paquete como una distribución y no compila sus fuentes. Para la otra forma, consulta Publica fuentes de Beyond en npm.
Declara la forma
{
"name": "@acme/cart",
"version": "2.0.1",
"type": "module",
"exports": { "./summary": "./summary.js", "./checkout": "./checkout.js" },
"beyond": {
"publication": {
"protocol": "beyond-publication/1",
"form": "distribution",
"compiler": { "name": "@beyond-js/packages", "version": "0.4.0" },
"formats": ["esm", "system"],
"conditions": ["browser", "production"],
"sourcemaps": true
}
}
}| Miembro | Obligatorio | Significado |
|---|---|---|
protocol |
Sí | beyond-publication/1 |
form |
Sí | distribution |
compiler |
Sí | El name y la version del compilador que produjo las salidas. Es parte de lo que hace comparables dos salidas. |
formats |
Sí | Al menos uno de esm y system |
conditions |
No | Las condiciones para las que se generaron las salidas |
sourcemaps |
No | Si la distribución incluye source maps |
Los valores del ejemplo son los del fixture del contrato, no una versión de compilador recomendada.
Incluye el manifiesto de la distribución
La declaración no tiene ningún miembro que nombre un archivo, así que la estructura es fija: una distribución lleva beyond-distribution.json en la raíz del paquete, con el protocolo beyond-distribution/1. Enumera, para cada módulo público, sus referencias (eager, lazy o style), sus recursos y sus variantes; cada variante indica sus conditions, su format y sus archivos de salida con su media, su digest y sus bytes.
El CDN lee una distribución a partir de este manifiesto y nunca la compila. Devuelve los archivos indicados completos o no devuelve nada, después de verificar cada digest.
Publica
Publica el paquete compilado con tus herramientas habituales de npm. Ninguna herramienta de Beyond ejecuta npm publish por ti.
Qué puede servir el CDN a partir de ella
El CDN solo puede entregar lo que la distribución contiene. Una aplicación que pide un formato o una condición para los que la distribución no se generó no puede obtenerlos de este paquete: la preparación informa la entrada que no puede satisfacer en lugar de compilar otra cosa.
| Situación | Resultado |
|---|---|
form: "distribution" sin compiler o sin formats |
Un error: el campo no es válido |
Falta beyond-distribution.json o no se puede leer, falta un archivo indicado o un digest no coincide |
La distribución se rechaza; no se sirve nada de ella |
| Ninguna variante coincide con las condiciones y el formato pedidos | La preparación nombra las variantes que la distribución tiene |
| El campo mezcla miembros de ambas formas | Se rechaza |
La aplicación necesita format=system y la distribución solo indica esm |
La salida no está disponible desde este paquete |
Cómo elegir entre las dos formas
| Source | Distribution | |
|---|---|---|
| Quién compila | El CDN, mediante Packages | Tú, antes de publicar |
| Formatos y condiciones | Lo que prepare cada aplicación | Solo lo que generaste |
| Versión del compilador | La que ejecuta el CDN | La que declaras |
| Qué descargan los demás | Tus fuentes | Tus salidas |