JSR: Construyendo un Registro Abierto para la Comunidad de JavaScript

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

JSR es un registro de JavaScript moderno impulsado por la comunidad con la misión de mejorar el ecosistema a través de la transparencia, la apertura y la innovación. Escucha sobre los desarrollos recientes, incluyendo el establecimiento de su junta de gobernanza, proyectos e iniciativas en curso, y cómo estos esfuerzos benefician directamente a los desarrolladores de JavaScript. Descubre cómo la comunidad puede involucrarse directamente, contribuir a la dirección de JSR y obtener información sobre los objetivos del proyecto y los próximos hitos. 

This talk has been presented at JSNation 2025, check out the latest edition of this JavaScript Conference.

Leo Kettmeir
Leo Kettmeir
29 min
12 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Leo presenta JSR, un nuevo registro de JavaScript similar a NPM pero que admite TypeScript. Valora la apertura y la innovación, abogando por un gobierno abierto y la participación de la comunidad. Figuras clave como Evan Yu y Ryan Dahl lideran la junta de gobernanza. JSR apunta a la transición hacia una fundación abierta para la propiedad comunitaria, considerando una ruta sin fines de lucro para una acción más rápida. Las características recientes incluyen métricas detalladas de descargas, modo oscuro y funcionalidad de búsqueda mejorada. Los planes futuros involucran soporte para NPM CLI, espejado autoalojado y diversidad en la gobernanza. El soporte para JSON5, la adopción de ESM y los planes empresariales son parte de la estrategia de gestión de paquetes de JSR.

1. Introduction to JSR - Leo's Overview

Short description:

Leo presenta JSR, un nuevo registro de JavaScript similar a NPM pero que soporta TypeScript. No reemplaza a NPM y es compatible con diferentes entornos de ejecución. JSR es gratuito y de código abierto, con el objetivo de simplificar la complejidad de la publicación y aportar innovación en contraste con NPM.

Hola, y bienvenidos a JSR, construyendo un registro abierto para la comunidad de JavaScript. Así que, para empezar, soy Leo. Trabajo en Deno, y también soy un mantenedor de JSR. Así que quiero ver rápidamente un mar de manos cuántas personas saben qué es JSR. Bien, alrededor de un tercio. Justo. Bien, bien.

Entonces, para los otros que no saben, primero déjenme presentarles. ¿Qué es JSR? Entonces, JSR es un nuevo registro de JavaScript. Es similar a NPM, pero no es NPM. Soporta TypeScript de forma nativa, lo cual no es solo una característica. Fue una decisión técnica fundamental que queríamos tener, porque TypeScript está en todas partes ahora, y publicar TypeScript en NPM es un poco complicado. Entraré en eso en un momento.

Y luego, bueno, como dije, no reemplaza a NPM. Vive junto a él. Así que aún puedes usar tus paquetes de NPM cuando tengas dependencias en JSR. Y es compatible con diferentes entornos de ejecución. Así que puedes usarlo con trabajadores de Cloudflare, Deno, Node.js, Bun, y cualquier otra cosa que soporte directorios de módulos de Node. Y también tiene soporte integrado por YARN NPM-PM, recientemente, pero no NPM, lo cual nos gustaría cambiar. Y otro punto de característica es que JSR es completamente gratuito y de código abierto. Entonces, ¿por qué construimos JSR? Bueno, la primera razón es la complejidad. Nuevamente, publicar en NPM puede ser un poco demasiado complicado. Tienes que configurar TS config, tienes que encontrar las configuraciones correctas, el objetivo, etcétera. No debería ser así. Es demasiado complicado. Y solo queríamos que funcionara. Oh, ups. Luego tenemos la innovación. NPM ha dejado de agregar nuevas características, realmente. Quiero decir, ¿alguna vez has visto algún cambio reciente en NPM? No.

2. JSR's Values and Governance

Short description:

JSR valora la apertura y la innovación, ofreciendo autenticación sin tokens, procedencia y generación automática de documentación. A diferencia de NPM, JSR está impulsado por la comunidad, es de código abierto y aboga por un gobierno abierto. Su objetivo es abordar la naturaleza estancada del ecosistema de JavaScript y aboga por la apertura y el gobierno liderado por la comunidad.

La característica más reciente, creo, fue hace como dos años, fue algo. Pero algo reciente, no ha habido, porque han dejado de innovar. Y el ecosistema de JavaScript no se adapta a eso. El ecosistema de JavaScript evoluciona constantemente. Hay un nuevo framework como cada semana. Y el ecosistema en sí se está moviendo rápido. Pero el registro en el que vive no se está moviendo en absoluto, lo cual es completamente inaceptable.

Y luego nuestros valores, a diferencia de NPM, que es propiedad de Microsoft, JSR es completamente abierto. Y es de código abierto, está impulsado por una comunidad, y tiene gobiernos abiertos como principio fundamental. Así que algunas características adicionales son la autenticación sin tokens, para que puedas publicar desde GitHub actions sin tener que configurar ningún token. Simplemente usará OIDC y verificará con tu usuario de GitHub. Procedencia, para que pueda probar que la persona que lo publicó realmente es la persona que lo publicó. Así que puede probar que fue ese individuo.

Y generación de documentación. Genera documentación para ti automáticamente basada en tus typings y comentarios de JS doc, etcétera. Y también hay muchas más características en las que no necesariamente voy a entrar en detalles. Pero tiene métricas de descarga muy detalladas y algunas cosas más que quizás podamos ver más tarde. Ahora, el gobierno.

3. JSR's Governance and Leadership

Short description:

JSR enfatiza el gobierno abierto y la participación de la comunidad. La naturaleza de código abierto del registro contrasta con el sistema cerrado de NPM. Figuras clave como Evan Yu, Isaac Schluter, James Snell, Luca Casanato y Ryan Dahl lideran la junta de gobierno, asegurando un enfoque impulsado por la comunidad para la toma de decisiones e innovación.

JSR es abierto por la razón de que JavaScript está controlado, no controlado por una empresa, por un comité, también conocido como T39. Luego, todas las implementaciones de JavaScript son de código abierto, como V8, JS core, etcétera. Y luego NPM es de código cerrado. La única parte de código abierto es el CLI, creo. Pero el registro real es completamente de código cerrado y solo tiene niveles de pago para tener paquetes privados, etcétera. Y está dirigido por una empresa. Y eso no encaja con el resto del sistema de JavaScript. Y por lo tanto, el registro de JavaScript necesita ser de código abierto y gobernado por una comunidad. Y abierto a la innovación y ser dirigido por un comité de algún tipo.

Entonces, ¿quién está dirigiendo esto? Bueno, tenemos algunas personas. Y para dirigir un proyecto como este, tienes que construir confianza. Y una gran parte de lo que se necesita fue convencer a líderes independientes respetados de todo el ecosistema. Quiero decir, necesitas tener una fundación para convencer a más personas de poder hacer de esto algo que realmente funcione. Y como tal, tenemos algunas personas que se unen a la junta de gobierno. Y esto demuestra nuestro compromiso de ser realmente un proyecto comunitario.

Así que las personas son Evan Yu, el creador de Vue.js y Vite y fundador de Void Zero. Luego tenemos a Isaac Schluter, el creador de NPM y cofundador de VLT.sh. Luego tenemos a James Snell, quien es miembro de Node.js y el ingeniero principal de sistemas en Cloudflare. Luego tenemos a Luca Casanato, quien es un colega mío que trabaja en Deno y también es miembro de TTC39. Y finalmente, tenemos a Ryan Dahl, quien es el creador de Node.js y Deno. Y eso abarca a nuestros miembros actuales de la junta, pero en el futuro, podríamos tener más en la junta.

4. GSR's Board Functions and Moderation

Short description:

La junta de GSR supervisa la transición del proyecto a una fundación y establece su dirección. Las contribuciones de código abierto carecen de una política formal, confiando en una evaluación caso por caso para la fusión. Un grupo de moderación gestiona el lado humano de GSR, asegurando su seguridad y fiabilidad con miembros clave como Oliver Methurst, Augustin Mori y Dr. Blackerslight.

Pero la junta realmente solo hace algunas cosas, que son supervisar que GSR se mueva a una fundación. Entraré en eso en un momento. Y luego establecer la dirección general del proyecto. Tomar decisiones en nombre del proyecto cuando sea necesario. Así que realmente, esto es cuando hay algún conflicto de intereses o hay una decisión drástica cambio que queremos movernos a un proveedor diferente para nuestra infraestructura, etc. Y determinar cómo se recoge la gobernanza en el futuro. Así que si queremos más personas, esto aún no se ha decidido realmente solo porque estamos actualmente contentos con las cinco personas que tenemos. Y luego determinar cómo se hacen las contribuciones de código abierto al proyecto. Actualmente, realmente no tenemos una política. Es más como, sí, esto se ve bien. Voy a fusionarlo. Pero no tenemos reglas estrictas sobre cómo queremos ejecutar este proyecto. En cuanto a qué tipo de contribuciones queremos aceptar, qué no. Actualmente, realmente es solo caso por caso que decido, sí, vamos a fusionar esto. O cualquier otro de los mantenedores, es decir.

Así que también tenemos un grupo de moderación. Así que nuevamente, GSR es público y es una infraestructura pública. Así que como muchos otros espacios públicos, no NPM por ejemplo, pero en el caso de GSR, necesita mantenimiento y reglas de seguridad. Así que tenemos un grupo de personas que maneja cualquier tipo de aspecto humano. Así que reaccionar con personas que tienen problemas, hay una disputa de nombres, hay informes de seguridad, aplicación de políticas, cosas así. Es muy moderador, todo el sistema. Y esto obviamente es bastante importante. Pero a la gente generalmente no le importa. No es un trabajo muy agradecido. Es relativamente ingrato. Y parte de lo que se necesita para mantener el registro funcionando de manera segura y confiable para todos. Así que para eso tenemos a Oliver Methurst, quien es creador de POP4, que es otro motor de JavaScript. Luego tenemos a Augustin Mori, quien es un contribuidor de Node.js y GSR también. Y luego tenemos a Dr. slash Blackerslight, contribuidor de GSR.

5. GSR's Transition to Open Foundation

Short description:

GSR tiene como objetivo la transición a una fundación abierta para la propiedad comunitaria. Considerando una alternativa de establecer una fundación sin fines de lucro para una acción más rápida. Las características recientes incluyen métricas detalladas de descargas y la introducción de un modo oscuro.

Estas son personas en las que confiamos. No se trata realmente de conseguir personas que sean populares o famosas, sino realmente personas que estén dispuestas a hacer el trabajo arduo de responder a los tickets de soporte y tener que lidiar con cualquier tipo de problema.

Luego, como mencionaba, estamos hablando de movernos a una fundación. Entonces, ¿qué es esta fundación? Bueno, idealmente queremos movernos a una fundación abierta donde GSR, porque GSR es actualmente propiedad de la empresa Dino, lo cual va en contra de lo que representa GSR.

Queremos moverlo a una fundación abierta que pueda encargarse de ello, encargarse de los costos también parcialmente, y simplemente tener como una plataforma que demuestre que realmente somos abiertos y no propiedad privada. Así que hemos estado hablando bastante con OpenGS. Y eso va bastante bien.

6. JSR's Foundation Transition Considerations

Short description:

Considerando el proceso lento, explorando la opción de crear una fundación abierta sin fines de lucro. Las responsabilidades legales difieren del soporte de OpenGS. La ruta sin fines de lucro ofrece un camino más rápido pero incierto en el proceso de transición.

Pero veremos qué sucede y también ECMA parece tener algún interés. Pero en general, es un proceso lento. Así que veremos qué sucede.

Ahora, una alternativa también sería que simplemente tengamos nuestra propia fundación. Así que más bien una empresa sin fines de lucro abierta. Ese es también un enfoque que hemos estado pensando en hacer. Está un poco menos definido y no estamos completamente seguros de si vamos a hacer eso.

Tiene sus diferentes problemas, como que tienes que encargarte de las cuestiones legales tú mismo en lugar de que OpenGS se encargue de todos los asuntos legales. Así que veremos exactamente qué hacemos. Pero crear nuestra propia organización sin fines de lucro técnicamente es el enfoque más rápido, y no tener que esperar los procesos de estas otras organizaciones. Pero veremos exactamente qué va a suceder. Es un proceso lento en general, independientemente del enfoque que tomemos.

7. JSR's Feature Updates

Short description:

Características recientes y futuras de JSR: métricas detalladas de descargas, desglose de versiones, modo oscuro, archivado inmutable de paquetes y búsqueda renovada para la conveniencia del usuario.

Y trataremos de impulsar esto hacia adelante. Pero sí, vendrá como venga. Pero ya se está tratando como algo abierto.

Entonces, veamos algunas de las características recientes y futuras de JSR. Así que mencioné algunas de las características clave al principio. Pero algunas características adicionales que agregamos recientemente fueron métricas de descargas relativamente detalladas. Así que cuando vas a npm, lo máximo que ves son las descargas semanales en un pequeño fragmento.

Con JSR, puedes ver el desglose real de todas las versiones de cuánto tiempo han estado teniendo descargas. Así que puedes cambiar entre diario, mensual y semanal. Y en algún momento, también agregaremos anual, pero eso actualmente es irrelevante. Y luego también hemos agregado recientemente el modo oscuro. Quiero decir, la gente lo ha estado pidiendo, así que simplemente lo hicimos. Fue hace bastante tiempo. Pero no es realmente una característica clave, pero la gente lo pide, así que lo damos.

Y luego cambiamos un poco nuestra infraestructura de archivado de paquetes, porque en JSR, no puedes cambiar las cosas, realmente. No puedes eliminar paquetes existentes. No podemos tener una situación de left-pad de nuevo. Así que la idea es que sea inmutable. Así que si publicas en JSR, tu paquete está ahí. Solo eliminaremos cosas en caso de disputas legales o cualquier otro tipo de situación relativamente similar. O estamos trabajando en agregar también la capacidad de poder tú mismo eliminar una versión de paquete si tiene menos de diez descargas y fue publicada hace menos de dos horas.

Queremos dar a las personas la flexibilidad de eliminar los paquetes bajo ciertas circunstancias. Pero no siempre, porque, de nuevo, left-pad, no queremos repetir. Así que nada puede ser eliminado, pero tenemos archivado. Así que como en GitHub, puedes archivar un paquete, y eso simplemente lo eliminará de la búsqueda, no lo hará visible. Pero todavía está ahí. Así que puedes descargarlo. Y eso es relativamente todo para las características más recientes. Y luego tenemos algunas características futuras, que es nuestra búsqueda renovada. Así que esto también va desde rehacer nuestra búsqueda actual para que sea un poco más fácil de usar y un poco más agradable.

8. GSR's Enhanced Search Features

Short description:

Búsqueda mejorada de GSR: búsqueda de símbolos a nivel de scope, funcionalidad de búsqueda global, generación de changelog y comparación para facilitar las migraciones de versión.

Pero también esto añade búsqueda de símbolos a nivel de scope. Así que en GSR, cada paquete está bajo un scope, a diferencia de NPM, donde eso es relativamente opcional. Y actualmente, puedes buscar símbolos, también conocidos como clases de funciones, etcétera, de un paquete en un paquete. Pero existe el caso de uso. Por ejemplo, tenemos el scope add STD, que es un scope de biblioteca estándar que proporciona varias funcionalidades. Pero no quieres pasar por cada paquete y encontrar cuál tiene la funcionalidad correcta. Así que vamos a añadir una búsqueda que te permitirá buscar cada función, cada clase, cada interfaz en ese scope.

Pero luego vamos a mejorar eso, y vamos a añadir funcionalidad para buscar cualquier función, cualquier clase, cualquier cosa en todo el registro. No importa qué scope, qué paquete, puedes simplemente buscar en una búsqueda global, y obtendrás resultados. Similar a Go, según creo. Y luego también una característica más en la que queremos trabajar pronto es la generación de changelog y diff. Esto suena bastante aburrido, que solo generamos un changelog, como ves en GitHub. Pero no, esto realmente te daría un buen diff entre funciones previamente cambiadas.

Así que digamos que la versión 1.0 y 2.0 tienen algunos cambios de firma. Mostrará eso como, oh, esto cambió. Y verás un buen diff que te permitirá comparar cuáles fueron los cambios, haciendo las migraciones a nuevas versiones mucho más fáciles. Y eso es prácticamente todo en lo que estamos trabajando actualmente y queremos implementar pronto. Así que supongo que podemos echar un vistazo rápido a JSR. Déjame ver si puedo hacer que esto funcione. Ahí vamos. Así que queremos ir a, oh, Dios, mi portátil está siendo muy lento. Ahí vamos. Así que este es el sitio web de JSR. Parece relativamente aburrido. No hay mucho que ver. Tenemos algunas publicaciones de blog aquí. Tenemos paquetes destacados, que seleccionamos manualmente qué paquetes queremos destacar, recientemente actualizados, y nuevos paquetes para JSR.

9. JSR's Package Insights

Short description:

Explorando el paquete STD en JSR: Compatibilidad, Sistema de Puntuación, Métricas Semanales.

Luego tenemos básicamente puntos principales similares a los que mencioné anteriormente. Pero podemos echar un vistazo a un paquete popular. Así que puedo ir a at STD. Nuevamente, como mencioné justo ahora, es un scope de biblioteca estándar donde proporcionamos varias funcionalidades estándar. Esto es mantenido por la empresa Dino. Y podemos simplemente saltar a la colección y veremos algunas cosas interesantes. Es lo suficientemente grande.

Bien. Bueno, tenemos este trabajo que muestra con qué entornos de ejecución es compatible. Esto es decidido por los mantenedores. No automáticamente porque detectarlo automáticamente es relativamente complicado. Y luego también tenemos una puntuación. Así que JSR puntúa tu paquete porque a la gente le encanta jugar con cosas. Y las puntuaciones se basan en varias piezas de información diferentes, como si tienes documentación sobre tus símbolos, si tienes una descripción para tu paquete, si elegiste algún entorno de ejecución con el que sea compatible, etcétera, etcétera. Y vamos a añadir más con el tiempo. El objetivo de la puntuación no es realmente oh, este paquete es mejor que aquel, sino se trata más de hacer que la gente use buenas convenciones y cree mejores paquetes para todo el ecosistema. Luego tenemos las métricas semanales, como vemos esto es muy similar a npm, pero puedo hacer clic en eso y verás un bonito gráfico para esto es semanalmente para este paquete.

Puedes cambiar esto a mensual si quieres. Y bien. Mi portátil está siendo extremadamente lento en este momento. De todos modos.

10. JSAR's Dependency Features

Short description:

Mostrando Gráficos de Dependencias y Generación de Documentación en JSAR.

Y una característica más que puedo mostrar rápidamente no está en este paquete. Pero tenemos una lista de dependencias. Pero además de una lista de dependencias, puedes generar, generamos para ti un gráfico de dependencias. Así que creo que assert depende de un paquete. Bien. Eso es inútil. Pero podemos ir a eso, por ejemplo, y ves una lista de dependencias, pero también puedes ir a un gráfico de dependencias, y generalmente generará un gráfico. Sí. Ahí vamos. Que genera todas las dependencias para los archivos internos del paquete. Pero también en amarillo resalta paquetes como dependencias externas a un paquete diferente. Y en rojo también resaltará cualquier paquete npm. Ahora no tengo un ejemplo directo para eso. Pero sí. Eso es eso.

Y creo que nos queda un minuto que puedo dar rápidamente una visión general de la generación de documentación. Así que aquí tenemos la biblioteca assert. Tiene varios símbolos. Tenemos un punto de entrada predeterminado y tenemos la función assert. Y esto es generado este contenido es generado por los comentarios JS doc a través de los comentarios JS doc y genera tipo como lo que acepta, alguna documentación, ejemplos, como parámetros definidos, tipos de retorno, etcétera. Así que ofrece un desglose completo, y también te muestra cómo usar esto. Así que puedes ejecutar un comando para agregarlo o puedes seleccionar el sistema que desees. Lo recordará para ti. Así que puedes ir a pnpm y te muestra cómo usarlo con pnpm, etcétera. Y sí. Eso es prácticamente todo para JSAR.

QnA

JSAR's Community Engagement

Short description:

JSAR Community Engagement and Future Plans

Y sí, tenemos reuniones semanales, quincenales, reuniones abiertas, puedes unirte. Puedes ir al enlace. Habrá una invitación en el calendario. Y puedes ir a JSAR.io para usar JSAR. Y también tenemos, bueno, es de código abierto, así que por favor contribuye. Hay muchas correcciones simples que están marcadas como good first issue. Así que nos encantarían algunas contribuciones al proyecto. Gracias.

Entonces, primero, ¿JSAR ha soportado paquetes privados ya? Actualmente no soportamos paquetes privados por ahora. No es difícil para nosotros soportarlo, pero es solo otra característica que queremos. Tenemos un rastreador de problemas relativamente largo con muchas solicitudes de muchas características, y hay mano de obra limitada. Así que en algún momento, va a llegar, pero no ahora.

¿Hay algún lugar donde puedan verificar eso? Como, ¿cuándo planean trabajar en eso? Sí, de hecho tenemos un tablero de proyectos para JSAR. Es público. Si vas al repositorio de JSAR, debería haber un enlace en algún lugar para el tablero de proyectos y puedes ver las prioridades de todo y en qué se está trabajando, qué tan difícil es, etcétera. Lo hemos caracterizado todo.

JSAR's Future Plans and Governance

Short description:

Planes Futuros de JSAR: Soporte para NPM CLI, Espejeo de autoalojamiento, Diversidad en la gobernanza.

Y están interesados en mudarse a JSAR. Y el obstáculo para eso es que NPM CLI soporte JSAR. Así que eso es algo que vamos a intentar impulsar. Ver que el equipo de NPM nos va a permitir agregar soporte nativo a NPM para JSAR. Pero sí. Suena emocionante.

Sí. Ok, Dominika está preguntando, ¿es posible autoalojar un espejo de JSAR? Entonces sí y no. Así que autoalojar JSAR es factible. Necesita algo de configuración. Actualmente tienes que configurar como GCP y AWS y todas esas cosas de infraestructura tú mismo, pero definitivamente es autoalojable.

Queremos hacer este flujo mucho más fácil para las personas, y también queremos agregar espejeo de tal manera que puedas tener una instancia de registro de JSAR como proxy. Así que básicamente puedes tener tu propio privado, digamos que lo usas en tu empresa, y luego volverá al normal para cosas que no existen en tu privado. Es algo que queremos hacer, pero aún por hacer. Tantas cosas por hacer. Es un gran proyecto.

JSAR's Governance Concerns

Short description:

Diversidad en la gobernanza, Prioridad en la detección de virus, Uso de paquetes GSR en diferentes bases de código.

Es bueno que estés trabajando en ello. Y la siguiente pregunta, ¿están tomando medidas para aumentar la diversidad en el grupo de gobernanza o equipo de moderadores? No hemos hecho ningún esfuerzo específico en eso. Simplemente porque queríamos comenzar con un equipo de personas que ya conocemos, y personas que son, bueno, bien conocidas por la comunidad. Quiero decir, espero que la mayoría de la gente conozca a esas personas en la junta. Así que definitivamente aumentaremos la diversidad del equipo. Pero ahora mismo, nos estamos enfocando en simplemente hacer las cosas, y luego veremos cómo mejorar esto. Quiero decir, probablemente vamos a mejorar esto también de antemano, pero sí, definitivamente es algo que haremos. Esperemos que sí.

¿Realizan alguna detección de virus o daños en los paquetes? Nuevamente, otra característica que tenemos en el seguimiento de problemas y que no hemos tenido la oportunidad aún. Es una de alta prioridad, porque si no puedes estar seguro de que algo es seguro en GSR, entonces quiero decir, obviamente, eso va a causar problemas. Así que definitivamente es algo que vamos a hacer. Estamos pensando en cómo podemos hacer esto exactamente. No es demasiado difícil. Solo necesita sentarse, como cualquier otra característica. Lo vamos a hacer. Esperemos que puedan solucionarlo adecuadamente.

¿Pueden usarse los paquetes de GSR en una base de código que no sea de TypeScript? Sí. Básicamente, puedes depender de los paquetes de GSR en cualquiera de tus proyectos de Node, si quieres, y de hecho hacemos la traducción por ti. Así que generamos archivos JavaScript y los mapas de origen correctamente, y cuando NPM o PMPM o YARN descargan el paquete, lo obtendrás transpilado, mientras que cuando lo usas con Deno, Deno simplemente extraerá los archivos individuales directamente. Es ligeramente más eficiente, pero al final, obtienes el mismo resultado. Bien.

JSAR's Package Configuration

Short description:

Soporte JSON5 para Package.JSON, comparación GSR.JSON, Migración de NPM a GSR, adopción de ESM sobre CJS, Mantenimiento de scope en NPM.

Sí, otra pregunta con muchos likes y respuestas, de hecho. ¿Tienes la sensación de que JSON5 será alguna vez compatible con Package.JSON, o cualquier otro comando de soporte de formato similar? No sé sobre Package.JSON. Quiero decir, tenemos nuestro propio archivo de configuración, que es GSR.JSON, que tiene cuatro campos, que son el nombre del paquete, la versión, los puntos de entrada y la licencia, y eso es compatible con JSON C. Pero para Package.JSON, sí, eso es... Pregunta al equipo de NPM. Bien.

¿Cómo se ve el Package.JSON de un paquete publicado? ¿Todavía tiene campos de exportación de modelo principal? Bueno, creo que acabas de responder eso. Sí, entonces tenemos un GSR.JSON que tiene un campo de exportaciones donde puedes especificar una cadena o un objeto. Una cadena es el punto de entrada predeterminado, y de lo contrario, puedes hacer algunos escenarios con el objeto también para hacer un punto de entrada predeterminado o puntos de entrada adicionales que desees. Pero todo lo que quieras importar de GSR tiene que estar especificado en los puntos de entrada. Así que sí. Bien.

Y preguntan si hay un camino de migración rápido o tal vez una guía. Quiero decir, una cosa con GSR que olvidé mencionar es que es solo ESM. Así que no soportamos CJS. Y eso es por varias razones diferentes, pero también porque ESM es el futuro. Más paquetes se están moviendo a ESM y se usa menos CJS. Así que el camino a seguir, o más bien, el camino de migración de NPM a GSR debería funcionar con tal vez algunos pequeños ajustes. Si estás usando CJS, entonces tendrás que cambiar bastantes cosas para usar ESM en su lugar. Pero en general, debería funcionar. Si hay algún problema, quiero decir, solo abre un problema. Y como el CLI tiene... Como tenemos un GSR CLI que puedes usar para publicar en GSR y te da mensajes de error relativamente útiles. Así que si eso no ayuda, entonces sí, abre un problema, por favor. Genial. Entonces tienen un camino a seguir seguro. ¿Cómo piensas reducir el problema de que el scope en NPM es mantenido por una persona diferente? Esto podría ser un problema de seguridad. ¿El scope en NPM es mantenido? No estoy seguro de entender. Hay un problema en NPM, supongo. Dice que el scope en NPM es mantenido por una persona diferente.

JSAR's Scope Management and Enterprise Plans

Short description:

Mantenimiento de scope, Scopes reservados, Planes empresariales - clave de proxy, paquetes privados, herramienta CLI para JSR.

Oh, I see. Creo que entiendo cuál es el problema. Creo que lo que están preguntando es sobre, digamos, tengo el scope STD, por ejemplo, pero alguien más quiere publicar en él también. Creo que probablemente sea eso. Y si no es eso, lo siento, pero voy a responder a esto. Si, digamos, alguien está ocupando un nombre de scope, como, digamos, yo, por ejemplo, tengo el scope de Google, aunque no trabajo en Google y no me pertenece, nosotros lo transferiremos a la empresa Google. Si hay un scope que realmente se está utilizando y está nombrado, como, no pertenece a la persona real, entonces aún veremos moverlo a los propietarios correctos. Así que tendremos discusiones con el actual mantenedor de él, veremos por qué tienen ese scope, si tienen una razón suficientemente válida, entonces hablaremos de nuevo con las personas que quieren el scope e iremos de un lado a otro. Pero hasta ahora, todos han sido simplemente, oh, sí, esta empresa quiere el scope, sí, se lo daremos a ellos. No han tenido ningún problema. Y también hemos reservado los 500 paquetes principales más algunos más y otras empresas como scopes reservados, por lo que no puedes simplemente crear los scopes. Tendrás que recibirás un popup cuando intentes registrar esos scopes y dirá, por favor abre un ticket. Y luego te lo asignaremos porque, por ejemplo, no queremos que personas al azar estén simplemente creando, como, en Discord y luego tener cosas raras o como en Google o lo que sea. Así que nos encargaremos de eso. Así que no puedes simplemente ocupar nombres y hacer cosas que otras personas no deberían estar haciendo. Tiene sentido. Quiero decir, eso podría ser un gran puente.

¿Algún plan para uso empresarial? Así que como mencioné antes, el tema del proxy es probablemente la clave para las empresas para que puedas auto-hospedarte en tu empresa y tener un flujo de regreso al registro principal. Y supongo que los paquetes privados también entran en el uso empresarial, hasta cierto punto. Y sí, no lo tenemos todavía. Pero en algún momento no es difícil, pero de nuevo, sí, llegaremos a eso. Necesitas tiempo. Quiero decir, de nuevo, por favor contribuyan. Nos encantaría algo de ayuda. Es bueno que puedan contribuir entonces.

¿Están planeando lanzar una herramienta CLI también? Sí, así que tenemos un JSR CLI que puedes usar a través de MPX. MPX JSR debería funcionar. Y puedes usar eso para publicar en un JSR. Y eso es todo, realmente. Puedes publicar en JSR y eso es todo.

JSAR's Package Management and Sustainability

Short description:

Registro alternativo a NPM de JSR, Compatibilidad y aplicación de paquetes, Sostenibilidad y crecimiento comparado con NPM.

Y también puedes descargar paquetes con él. Porque con NPM actualmente no soportando completamente JSR de forma predeterminada, estamos haciendo algunos trucos usando el archivo .npmrc, en el cual puedes especificar un registro. Esto es lo que usualmente hacen las empresas en situaciones empresariales. Y básicamente estamos usando esa funcionalidad para apuntar al registro de JSR como un registro alternativo a NPM.

Perfecto. ¿Puede JSR permitirte ver solo descargas de producción con solo servidores minificados de paquetes? No estoy seguro de entender completamente lo que se está preguntando aquí. Quiero decir, solo descargas de producción. Quiero decir, si publicas paquetes, es semi-compatible. Así que si haces pre-lanzamientos, entonces puedes publicar eso. Quiero decir, lo que sea que quieras publicar, puedes publicarlo. No hay imposiciones específicas sobre lo que se está publicando, si está listo para producción o no. Eso realmente depende del mantenedor del paquete y los autores. Y puedes subir cosas minificadas si quieres subir cosas minificadas. No lo recomendamos, pero puedes hacerlo. Entendido.

¿Crees que la gente prefiere nuevas características sobre sostenibilidad? ¿Hiciste alguna investigación sobre esto? ¿En qué sentido sostenibilidad en este escenario? Estoy tratando de pensar. Quiero decir, JSR no es caro de operar, pongámoslo así. Es relativamente sostenible para nosotros actualmente. Tiene costos de gastos relativamente bajos, especialmente porque NPM es relativamente antiguo y tiene un Es más como que NPM tiene muchas capas y se ha construido con el tiempo. Así que tiene mucho desgaste y no está optimizado en algunos aspectos. Mientras que JSR es completamente nuevo, pensamos en estos problemas que NPM tuvo que resolver a lo largo de los años como elementos clave que teníamos que abordar directamente. Así que no tenemos tantos problemas con eso. Pero también, somos mucho más pequeños que NPM, por lo que no tenemos tanto tráfico. Así que sí. Al menos puedes arreglar eso y luego comenzar a hacer más características con seguridad.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
pnpm is a fast and efficient package manager that gained popularity in 2021 and is used by big tech companies like Microsoft and TikTok. It has a unique isolated node module structure that prevents package conflicts and ensures each project only has access to its own dependencies. pnpm also offers superior monorepo support with its node module structure. It solves the disk space usage issue by using a content addressable storage, reducing disk space consumption. pnpm is incredibly fast due to its installation process and deterministic node module structure. It also allows file linking using hardlinks instead of symlinks.
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
React Advanced 2021React Advanced 2021
27 min
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
Top Content
The Talk discusses optimizing rendering of big tables using Flipper, a new version that is ten times faster with improved user interaction and richer data. It explores optimizing rendering with React, virtualization, filtering, sorting, and windowing techniques. The introduction of the Flipper Datasource packet simplifies handling updates, inserts, and removals. The performance of the Flipper data source package is excellent, even in a debug build of React, with minimal CPU usage. The Q&A session covers incremental sorting, dynamic row height, and the potential for two-dimensional virtualization in the future.
Durable Objects - Todo En Todas Partes Todo De Una Vez Por No Mucho Dinero
React Day Berlin 2023React Day Berlin 2023
31 min
Durable Objects - Todo En Todas Partes Todo De Una Vez Por No Mucho Dinero
Top Content
Durable Objects is a versatile programming paradigm by Cloudflare that allows for stateful and uniquely addressable server environments. It simplifies feature development, enables real-time updates through WebSocket connections, and provides a built-in key-value store for long-term storage. It can be used to create collaborative applications, manage data storage efficiently, and explore co-located compute and data at the edge. Other companies like Azure also offer similar technologies. Deno's KV and fly.io's Flame are innovative products that eliminate the need for provisioning databases and Kubernetes clusters.
Depuración con Chrome DevTools
JSNation Live 2021JSNation Live 2021
11 min
Depuración con Chrome DevTools
Top Content
Here are some tips for better utilizing DevTools, including using the run command, customizing keyboard shortcuts, and emulating the focus effect. Learn how to inspect memory, use the network panel for more control over network requests, and take advantage of console utilities. Save frequently used code as snippets and use local overrides for easy editing. Optimize images by using a more optimized format like AVIF and track changes in the network panel to see the reduced data size.

Workshops on related topic

React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
Top Content
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
WorkshopFree
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
Construyendo Pinia desde cero
Vue.js Live 2024Vue.js Live 2024
70 min
Construyendo Pinia desde cero
Workshop
Eduardo San Martin Morote
Eduardo San Martin Morote
Sumergámonos en cómo funciona Pinia bajo el capó construyendo nuestro propio `defineStore()`. Durante este masterclass cubriremos algunos conceptos avanzados de Vue como la inyección de dependencias y los scopes de efectos. Esto te dará una mejor comprensión de la API de Composición de Vue.js y Pinia. Requisitos: experiencia en la construcción de aplicaciones con Vue y su API de Composición.
Masterclass de Desarrollo Web 3D con el ecosistema de TresJS: Un taller de Vue.js
Vue.js Live 2024Vue.js Live 2024
119 min
Masterclass de Desarrollo Web 3D con el ecosistema de TresJS: Un taller de Vue.js
Workshop
Alvaro Saburido
Alvaro Saburido
Presentamos "Masterclass de Desarrollo Web 3D con TresJS", un taller especializado creado para desarrolladores de Vue.js ansiosos por explorar el mundo de la gráfica 3D en sus aplicaciones web. TresJS, un potente renderizador personalizado para Vue, está diseñado específicamente para funcionar perfectamente con el sistema reactivo de Vue. Este taller ofrece una inmersión profunda en la integración de visualizaciones 3D sofisticadas y experiencias interactivas directamente en aplicaciones Vue, aprovechando las fortalezas únicas de los ecosistemas de Vue y TresJS.
Este taller está diseñado para desarrolladores de Vue.js que buscan ampliar sus habilidades en la tercera dimensión, diseñadores de UI/UX interesados en incorporar elementos 3D en aplicaciones web, y desarrolladores front-end curiosos sobre el potencial de la gráfica 3D para mejorar las experiencias de usuario. Debes estar familiarizado con Vue.js para aprovechar al máximo este taller.
Lo que Aprenderás- Introducción a TresJS: Descubre los fundamentos de TresJS y cómo se integra con el ecosistema de Vue para dar vida a la gráfica 3D.- Creación de Escenas 3D con Vue: Aprende a construir escenas 3D complejas utilizando componentes Vue, mejorando tus interfaces de usuario con visuales dinámicos e inmersivos.- Interactividad y Animación: Domina las técnicas para hacer tus escenas 3D interactivas, respondiendo a las entradas del usuario para una experiencia cautivadora.- Integración con Funcionalidades de Vue: Explora la integración avanzada de TresJS con la reactividad, los composables y la tienda Vuex de Vue para gestionar el estado en aplicaciones web 3D.- Rendimiento y Mejores Prácticas: Obtén información sobre la optimización de tus escenas 3D para el rendimiento y las mejores prácticas para mantener aplicaciones web fluidas y receptivas.