Sobre el proyecto

# esm.sh Un CDN de JavaScript sin compilación para el desarrollo web moderno. ## Resumen esm.sh permite importar módulos de JavaScript directamente desde URLs HTTP sin pasos de instalación o compilación. Transforma el código fuente en módulos ES compatibles con el navegador en el lado del servidor, almacena en caché los resultados y los sirve desde un CDN global de Cloudflare. ## Soporte de Registros - **NPM**: Importa cualquier paquete por nombre, versión o etiqueta - **JSR**: Registro compatible con Deno, comenzando con `/jsr/` - **GitHub**: Importaciones directas desde repositorios con el prefijo `/gh/` - **pkg.pr.new**: Builds de vista previa desde PRs con el prefijo `/pr/` ## Características Clave ### Importaciones Sin Compilación ```js import React from "https://esm.sh/react@19.2.4"; import { encodeBase64 } from "https://esm.sh/jsr/@std/encoding@1.0.0/base64"; ``` ### Transformación de Código Fuente Transforma automáticamente archivos `.ts(x)`, `.vue` y `.svelte` en el navegador sin herramientas de compilación. ### Gestión de Dependencias Especifica versiones de dependencias con parámetros de consulta: ```js import useSWR from "https://esm.sh/swr?deps=react@18.3.1"; ``` Usa alias para dependencias: ```js import useSWR from "https://esm.sh/swr?alias=react:preact/compat"; ``` ### Opciones de Empaquetado - `?bundle=false` - desactiva el empaquetado predeterminado - `?standalone` - agrupa todas las dependencias en un solo archivo - `?raw` - sirve el código fuente sin transformar - `?exports=foo,bar` - reduce el árbol a exportaciones específicas ### Configuración de Build Controla los objetivos y opciones de compilación: ```js // Build de desarrollo import React from "https://esm.sh/react?dev"; // Especifica el objetivo import React from "https://esm.sh/react?target=es2022"; // Opciones de ESBuild import foo from "https://esm.sh/foo?conditions=custom1,custom2"; import foo from "https://esm.sh/foo?keep-names"; ``` ### Integración con Mapas de Importación Funciona con mapas de importación HTML para resolución de especificadores desnudos: ```html <script type="importmap"> { "imports": { "react": "https://esm.sh/react@19.2.4" } } </script> ``` Usa `?external` o el prefijo `*` para mantener las importaciones como especificadores desnudos para la resolución del navegador. ### Características Adicionales - **Importaciones CSS**: bandera `?css` para paquetes que importan CSS en JS - **Web Workers**: consulta `?worker` para carga de workers con soporte de inyección - **Compatibilidad con Deno**: resuelve módulos integrados de Node.js (fs, os, net, etc.) - **Soporte de TypeScript**: definiciones de tipos automáticas via cabecera `X-TypeScript-Types` - **Script tsx**: script de 1KB para escribir TSX directamente en HTML ### Purga de Caché Actualiza builds en caché para paquetes actualizados: - Las versiones exactas se reconstruyen inmediatamente - Los nombres desnudos vuelven a resolver versiones en la siguiente solicitud - Reto de prueba-de-trabajo previene abuso ### Autoalojamiento Despliega tu propia instancia siguiendo la [documentación de alojamiento](./HOSTING.md). ## Limitaciones Actualmente no es compatible con los runtimes de Node.js o Bun. ## Licencia MIT