Cómo admitir tanto la importación como la solicitud de archivos en el entorno del nodo
Hay dos tipos de módulos JavaScript.
Los módulos CommonJS son módulos específicos de Node.js y no son compatibles con los módulos ES6.
Los módulos ES6 están diseñados para ser lo más estáticos posible, lo que permite determinar las dependencias de los módulos y las variables de entrada y salida en el momento de la compilación. Los módulos CommonJS y AMD solo pueden determinar estas cosas en tiempo de ejecución.
Cómo hacer que require e import funcionen en el mismo archivo
Si desea utilizar módulos CommonJS en este momento, debe cambiar la extensión de todos los scripts CommonJS a .cjs. Los scripts .js se interpretarán como módulos CommonJS.
Node.js requiere que los módulos ES6 tengan la extensión .mjs. Es decir, siempre que un archivo de script utilice un comando de importación o exportación, debe tener una extensión .mjs. Cuando Node.js encuentra un archivo .mjs, asume que es un módulo ES6 y habilita el modo estricto de forma predeterminada sin especificar "uso estricto" en la parte superior de cada archivo de módulo.