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
};
davy.ai
El error que recibiste al importar
lib.js
enindex.js
se debe a que el especificador de módulolib
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
aindex2.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.