Construyendo visualizador NPM del lado del cliente: Sin servidores, solo Vanilla JS y CSS

Construye un visualizador del lado del cliente con NPM de forma serverless utilizando Vanilla JS y CSS. Aprende a crear aplicaciones web interactivas y sin necesidad de servidor.

viernes, 19 de diciembre de 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Building an NPM Client-Side Visualizer: Serverless with Vanilla JS and CSS

Al crear el visualizador de dependencias NPM tuvimos una regla innegociable: No Backend. Trabajamos con código propietario y sabemos que tú también, por eso lo último que quiere un desarrollador es subir su package.json a un servidor ajeno. Buscábamos una herramienta que se sintiera como una aplicación de escritorio nativa pero que viviera en el navegador, impulsada únicamente por Vanilla JS, HTML y CSS.

Parsing y subida local: el proceso comienza con la API de arrastrar y soltar. Cuando colocas tu package.json en la zona de carga no lo enviamos a ningún lado, usamos FileReader para leer el archivo como texto, aplicamos JSON.parse para convertirlo a objeto y extraemos inmediatamente las dos matrices clave: dependencies y devDependencies. El verdadero reto es la gestión de errores. JSON mal formado, versiones faltantes o configuraciones no estándar pueden romper la visualización. Por eso implementamos un parser robusto que sanitiza y valida los datos antes de que lleguen al motor de visualización.

Motor físico y diseño: no queríamos un árbol estático sino algo orgánico, por eso implementamos un algoritmo de grafo dirigido por fuerzas. En esa disposición cada nodo tiene una masa simulada y las conexiones actúan como resortes que empujan y tiran hasta que el sistema se estabiliza, formando clusters naturales donde paquetes relacionados como librerías de React tienden a agruparse. Para ofrecer otra vista añadimos un layout jerárquico basado en Reingold-Tilford que dispone padres sobre hijos y aporta orden cuando se necesita claridad estructural.

Filtrado en tiempo real: la gestión de estado en cliente es crítica. Al activar filtros como solo dependencias de producción no recargamos el archivo, mantenemos un estado maestro con todos los nodos y enlaces y aplicamos filtros como máscaras visuales. Manipulando clases CSS y propiedades de visibilidad SVG ocultamos instantáneamente devDependencies sin recalcular la simulación física, lo que nos permite mantener 60 FPS incluso en proyectos grandes.

Interacción y trazado de rutas: queremos que puedas seguir la influencia de un paquete. Al hacer clic en un nodo ejecutamos una búsqueda recursiva que localiza todos los enlaces conectados y los nodos asociados, repitiendo hasta agotar la cadena. Todo lo que no forma parte de esa ruta recibe una clase como .dimmed y se atenúa mediante transiciones CSS para lograr un efecto foco suave y fluido.

Analítica y renderizado: el panel de análisis es una agregación sencilla de los datos parseados, contamos claves en los objetos de dependencias y presentamos métricas útiles. Para renderizar preferimos manipulación DOM estándar y APIs Canvas/SVG, evitando frameworks pesados para mantener el bundle pequeño y servir como herramienta para combatir precisamente el bloat del propio proyecto.

Exportar la visualización: la función guardar imagen fue de las más delicadas. Dibujamos el estado actual del grafo en un elemento Canvas oculto y convertimos ese Canvas en Blob o DataURL para provocar la descarga en el navegador. Así obtienes una captura nítida aunque hubieras hecho zoom o paneado sobre el grafo.

Por qué importa: las aplicaciones modernas dependen de muchas librerías externas y en pocos pasos un proyecto sencillo puede convertirse en una red de dependencias anidadas. Un visualizador NPM te da visión clara del grafo completo, permite detectar duplicados, versiones mayores múltiples, módulos sin mantenimiento o rutas que introducen vulnerabilidades. Eso acelera auditorías, reduce deuda técnica y mejora la toma de decisiones sobre actualizar, parchear o sustituir paquetes.

Seguridad y mantenimiento: aunque npm audit enumera problemas, no siempre muestra de manera intuitiva de dónde provienen. Un mapa visual resalta la ruta exacta hasta una dependencia vulnerable, facilitando decisiones sobre mitigación. Además, para equipos nuevos en un proyecto la visualización agiliza el onboarding y mejora la colaboración al ofrecer una representación inmediata de la arquitectura.

En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones que combinan diseño robusto y seguridad. Ofrecemos servicios de software a medida y aplicaciones multiplataforma y podemos ayudarte a integrar herramientas de análisis y visualización en tus procesos. Con experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, y servicios inteligencia de negocio proporcionamos soluciones completas para impulsar tu transformación digital. Si buscas desarrollar una plataforma propia o mejorar la arquitectura de tus aplicaciones a medida visita nuestros servicios de desarrollo de aplicaciones y software a medida y si te interesa explorar cómo aplicar modelos y agentes inteligentes en tu empresa conoce nuestras capacidades en inteligencia artificial e IA para empresas.

Palabras clave que impulsan nuestras soluciones: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si quieres una solución que combine visualización de dependencias, automatización y seguridad aplicada a medida, en Q2BSTUDIO diseñamos e implementamos la integración perfecta entre análisis visual y operaciones seguras.

Listo para ver el código en acción? Arrastra tu package.json al visualizador NPM y observa cómo el motor físico organiza tu arquitectura. Si prefieres una solución totalmente integrada para tu organización contacta con Q2BSTUDIO y llevemos tu proyecto al siguiente nivel.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.