es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

index.js y index.html en el mismo directorio

Estoy tratando de aprender React y Javascript. Trato de entender cómo funcionan import y export en ES6, así que coloqué los tres archivos index.html, index.js y lib.js en la misma carpeta. Cuando incluí index.js en mi archivo html, me dio el error:

Uncaught TypeError: Failed to resolve module specifier "lib". Relative references must start with either "/", "./", or "../".

Cuando cambié el nombre de index.js a index2.js, todo funcionó bien. Creo que el problema es que no debía colocar index.html y index.js en la misma carpeta, pero no entiendo por qué. ¿Alguien puede explicarlo por favor?

index.html
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>¡Hola Mundo!</h1>
<script type="module" src="./index.js"></script>
</body>
</html>

index.js

import {square} from './lib.js'

console.log(square(3))

lib.js
javascript
export function square(x){
return x*x
};

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error que recibiste al importar lib.js en index.js se debe a que el especificador de módulo lib no es una referencia de ruta válida. En ES6, los especificadores de módulo que no son rutas absolutas o relativas deben resolverse utilizando algoritmos de resolución de módulos que dependen del entorno de tiempo de ejecución específico.

    Cuando cambiaste el nombre de index.js a index2.js, el especificador de módulo se actualizó a ./lib.js y la instrucción de importación pudo resolver la ruta relativa correctamente.

    Se recomienda mantener todos los archivos JavaScript en una carpeta separada de los archivos HTML y utilizar rutas relativas al importar o exportar módulos. Esto ayuda a mantener organizado el proyecto y facilita la referencia a los módulos en diferentes archivos.

Comments are closed.