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

155
Vistas
Obtener 'ReferenceError: no definido' al usar módulos de importación/exportación

Tengo y exportUserList.js, importUserList.js y los archivos main.js. El archivo main.js contiene 2 variables ya definidas que quiero registrar en la consola y también quiero registrar la variable de usuario importada desde el archivo main.js. Pero sigo recibiendo 'usuario no definido'. He usado la opción de ventana sugerida, pero no pasa la variable. ¿Se puede corregir esto?

este es el html:

 <html lang="en"> <head> <meta charset="utf-8" /> <link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet" /> <title></title> <style> </style> <head> </head> <body> <script type="module" src="/importUserList.js"></script> <script type="text/javascript" src="/main.js"></script> </body>

esta es la exportación exportUserList.js:

 export const user = 'first user'

esta es la importación importUserList.js:

 import {user} from './exportList.js' console.log(user) window.user = user

y este es el main.js:

 let names = 'mark' let numbers = 10 console.log(names) console.log(numbers) console.log(user)
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Opción 1: defer su secuencia de comandos principal, porque los módulos difieren de manera predeterminada, y porque su secuencia de comandos principal no se ejecuta antes que el módulo.

Sin embargo, esa es la mala opción, y no deberías ponerla en práctica porque eso te mantiene usando los módulos de una manera completamente incorrecta. Nunca hagas eso.

La solución mucho mejor es convertir su main.js en un módulo y luego decirle que importe lo que necesita para ejecutarse. No carga módulos solo para vincular sus datos en globalThis ( window en este caso), el objetivo de los módulos es mantener el código contenido, de modo que lo que sea que necesite las exportaciones de un módulo, pueda importarlo según sea necesario. Usas módulos para no contaminar el alcance global =)

Entonces: elimine ese importUserList.js y en su lugar coloque la importación en su secuencia de comandos principal:

 import {user} from './exportList.js' let names = 'mark' let numbers = 10 console.log(names) console.log(numbers) console.log(user)

Y luego cargue su script principal como un módulo con:

 <script type="module" src="/main.js"></script>

Y luego, por supuesto, recuerda que los módulos siempre se cargan en diferido .

Básicamente: si está usando módulos, use módulos "hasta el final".

about 4 years ago · Juan Pablo Isaza Denunciar
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