Recibo este error SyntaxError: Cannot use import statement outside a module cuando intento importar desde otro archivo javascript. Esta es la primera vez que intento algo así. El archivo principal es main.js y el archivo del módulo es mod.js
principal.js:
import * as myModule from "mod"; myModule.func();mod.js:
export function func(){ console.log("Hello World"); }¿Cómo puedo arreglar esto? Gracias
Para usar la sintaxis de importación (ESModules), debe agregar lo siguiente a su paquete.json en el nivel superior:
{ // ... "type": "module" } Si está usando una versión de Node anterior a la 13, también necesita usar el --experimental-modules cuando ejecuta el programa:
node --experimental-modules program.js¡Espero eso ayude!
Use la sintaxis de commonjs en lugar de la sintaxis del módulo es:
module.exports.func = function (){ console.log("Hello World"); }y
const myMod = require("./mod") myMod.func()De lo contrario, si desea utilizar módulos es, debe hacer lo que sugiere la respuesta de Achraf Ghellach
Recientemente me encontré con este problema. Esta solución es similar a la respuesta mejor calificada pero con algunas formas que encontré que funcionaron para mí.
En el mismo directorio que sus módulos, cree un archivo package.json y agregue "type":"module" . Luego use importar {func} from "./myscript.js"; . El estilo de importación funciona cuando se ejecuta con node.