Tengo un proyecto que se compila con require, pero ahora necesito usar un paquete @nfteyez/sol-rayz, que solo admite la importación de ES6.
No puedo agregar type: module porque hay muchos archivos.
Intenté cambiar el archivo a mjs, pero obtengo errores al importarlo con require en otro archivo.
Encontré en el ejemplo que es posible cuando habilita el módulo, puede usar la importación con:
// Define "require" import { createRequire } from "module"; const require = createRequire(import.meta.url);hay algo similar para importar? estoy usando el nodo v17
Vaya a la función de import() .
let solRayz = await import('@nfteyez/sol-rayz');
Para la supresión completa y el uso de un estilo común, es muy difícil ya que los paquetes implícitos tienen su propio sistema de módulos en sus archivos de paquetes. Para este problema en particular, los siguientes enlaces pueden ayudar
La flexibilidad total de usar sistemas de módulos no está disponible a partir de ahora
¿Cuál es la diferencia entre los archivos .js y .mjs?
https://nodejs.org/docs/latest/api/esm.html#esm_differences_ between_es_modules_and_commonjs
https://www.geeksforgeeks.org/how-to-use-an-es6-import-in-node-js/
en node.js v14 y superior, podemos habilitar la compatibilidad con el módulo es simplemente agregando esto en package.json
"type": "module"