Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

120
Vistas
¿Cómo importar un módulo de nodo VS usar la API del navegador?

En un paquete de TS diseñado para ejecutarse tanto en nodeJS como en un navegador, quiero acceder a la generación aleatoria segura desde crypto.getRandomValues (navegador) o crypto.randomFillSync (nodo).

En package.json , tengo "type": "module" , toda mi biblioteca usa importaciones ES6 (por lo que no se define el requisito).
Utilizo tsc para compilar el paquete de nodos normal y acumularlo para empaquetarlo en un UMD para navegador.

Desafortunadamente, el módulo criptográfico del nodo se debe importar para que se pueda utilizar. La declaración de import no puede "ocultarse" dentro de if , por lo que se bloqueará cuando se ejecute en el navegador.

 if(typeof crypto == "object"){ fillRandom = crypto.getRandomValues } else{ //node import crypto from "crypto" //Err: Cannot use import outside a module (browser) fillRandom = crypto.randomFillSync }

Con commonJS, simplemente podría usar require("crypto") , pero ya me comprometí por completo a usar módulos ESM.

Me imagino que podría cambiar esta parte del código antes de compilar TS para el navegador/nodo, por lo que ambas versiones tendrían el código que tiene sentido en su entorno, pero no sé cómo, parece un poco exagerado.

¿Hay alguna manera?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda