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

195
Vistas
Js: convertir el archivo en módulo da el error "[función] se declara pero su valor nunca se lee"

Hola disculpa si es una pregunta tonta pero no encuentro la respuesta por ningún lado.

Tengo un archivo js en el que dibujo en lienzos y acabo de eliminar una función porque me gustaría usarla en otro archivo js que tengo. Luego importé la función getPosition en el archivo drawBalls.js de la siguiente manera:

 import {getPosition} from "../Useful_Scripts/divPosition.js";

Y eso parece funcionar bien (ya que no me da errores). Sin embargo, justo debajo de eso, tengo una función dibujar que comienza así:

 function draw(canvas){ const maxRadius = 10; const minRadius = 5; etc;

Lo cual ya no funciona dado que se declara el error 'dibujar' pero su valor nunca se lee.'. Sin embargo, funciona si elimino el código de importación y pego la función getPosition en drawBalls.js y elimino type="module" de la etiqueta del script.

Tengo esto en mi archivo html donde trato de dibujar en mi lienzo:

 <script type="module" src="../Scripts/Project_1/drawBalls.js"></script> <script> window.addEventListener('load', (event) => { draw(canvas1); }); </script>

¿Puede alguien explicar por qué ya no funciona tan pronto como el archivo se convierte en un módulo?

Actualizar He cambiado mi archivo html a

 <script type="module" > import {draw} from "../Scripts/Project_1/drawBalls.js" window.addEventListener('load', (event) => { draw(canvas1); });

¡Esto funciona!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El ámbito predeterminado de un módulo es ese módulo y no el ámbito global.

El método de draw solo existe dentro de ese módulo.

O:

  • Coloque el código addEventListener dentro drawBalls.js
  • export la función draw y luego import en su otra secuencia de comandos en lugar de cargar drawBall.js con un elemento <script> .

También puede asignar explícitamente draw para que sea una propiedad de window , pero eso es un truco sucio y no lo recomiendo.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Incluye su drawBalls.js como un módulo, pero no exporta la función de dibujo de su módulo – derpirscher

Está utilizando el script como un módulo. Suponga que está creando un paquete NPMjs y crea index.js. ¿Cómo necesitarías ese módulo y lo usarías?

Antes de requerir tu paquete, en index.js deberás exportarlo para importarlo/incluirlo.

Es una sintaxis muy básica con module.exports :

DibujarBolas.js
 module.exports = draw;

EDITAR: El código anterior es para módulos CommonJS. Use export en su lugar (al igual que import ):

 export draw;
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