7 puntos por xguru 2024-04-26 | 3 comentarios | Compartir por WhatsApp

JSR - Un nuevo registro para compartir paquetes de JavaScript

  • En los últimos años han aparecido nuevos gestores de paquetes como yarn o pnpm, mejorando la forma de descargar paquetes
  • Sin embargo, el registro de paquetes npm, núcleo del ecosistema de JavaScript, casi no ha evolucionado
    • La última actualización destacable fue la pestaña "files", añadida hace ya varios años
  • Paradójicamente, aunque JavaScript es conocido como un lenguaje que evoluciona activamente, parece estar frenado por un modelo de distribución anticuado

Problemas del sistema de módulos de JavaScript

  • Cuando se creó Node, no existía un sistema de módulos estándar para JavaScript, así que el registro npm y Node adoptaron por defecto el sistema CommonJS(require), que tiene defectos fundamentales
    • Era un sistema que no funcionaba en el navegador
  • Hace casi 10 años, en 2015, el propio lenguaje adoptó la sintaxis de módulos ES(import)
  • Hoy en día, la mayor parte de JavaScript se escribe usando módulos ES, pero la forma de distribuir estos módulos sigue siendo compleja
    • Esto es todavía más cierto cuando TypeScript entra en juego
  • Fue esta clara brecha del ecosistema la que dio origen a JSR
    • JSR no es otro gestor de paquetes, sino un registro transformador diseñado para reinventar la forma de compartir JavaScript y TypeScript entre runtimes del lado del servidor, navegadores y distintas herramientas

Características y ventajas de JSR

  • JSR mejora de forma fundamental el proceso de distribución de código al simplificar complejidades que han afectado a los desarrolladores durante mucho tiempo
  • Al ser solo ESM y priorizar TypeScript, JSR elimina los incómodos ajustes de configuración de package.json y las laberínticas opciones del compilador en tsconfig
  • Con un sistema de puntuación de paquetes, JSR fomenta las mejores prácticas para la distribución de código
    • De forma similar a pub.dev en la comunidad Dart, da una puntuación más alta a los paquetes que incluyen documentación JSDoc completa para cada símbolo exportado
  • Como en otros ecosistemas modernos de programación, como Go o Rust, JSR ofrece por defecto generación automática de documentación

Relación con npm

  • JSR es un registro, no otro cliente para el registro npm
    • Pero eso no significa renunciar a todo lo relacionado con npm ni cambiar a un ecosistema separado de módulos de JavaScript
  • JSR está diseñado para complementar al registro npm, no para reemplazar npm
    • Los paquetes de JSR pueden depender de paquetes de npm (por ejemplo, consultar este paquete)
  • Además, los paquetes de JSR pueden usarse desde software existente centrado en npm
    • Esto se debe a que JSR también funciona como un registro npm que distribuye tarballs compatibles con npm, accesible en npm.jsr.io
    • Gracias a esto, los paquetes de JSR pueden incluirse en cualquier software que use npm, yarn o pnpm, e integrarse con registros privados
  • Los tarballs npm que distribuye JSR están optimizados

Prioridad en seguridad

  • En Deno, la seguridad es la máxima prioridad en el desarrollo con JavaScript
  • Aunque ningún registro puede supervisar de forma exhaustiva todo el código publicado, JSR aporta transparencia sobre los publicadores y protege el proceso de publicación
  • Al integrar GitHub Actions y tokens OIDC, JSR genera pruebas avanzadas y verificables de procedencia usando niveles de cadena de suministro para artefactos de software, y las almacena en Sigstore
    • Esto no solo garantiza la autenticidad del código, sino que también establece confianza y responsabilidad sobre lo que implementan los desarrolladores

Un centro para el desarrollo en JavaScript

  • JavaScript es un lenguaje universal y muy accesible, la lengua común de muchos programadores
  • Este lenguaje necesita un hub central donde los desarrolladores puedan compartir su trabajo sin complejidad innecesaria: una plaza pública
  • Creemos que JavaScript seguirá siendo el centro del desarrollo de software durante muchos años, y JSR busca respaldar esa relevancia continua
  • JSR no es simplemente otra herramienta del ecosistema, sino que representa un cambio fundamental en la manera en que pensamos sobre la distribución de JavaScript y TypeScript

3 comentarios

 
yangeok 2024-04-30

Creo que jsr se podía descargar desde npm, jajaja

 
zzzz2222 2024-04-26

Que se muera PHP

 
semjei 2024-04-29

¿Por qué meter PHP en un artículo de JS??

Como alguien que está trabajando en un proyecto de PHP, me duele un poco.