¿Cómo puedo ejecutar una API de ExpressJS utilizando módulos en lugar de commonjs y que haya sido empaquetada por Webpack?
En mi aplicación express, utilizo las declaraciones de Import y Export. Tengo la línea “type”: “module” en mi archivo package.json. Puedo ejecutar la aplicación utilizando Node antes de empaquetarla con Webpack.
Después de haberla empaquetado en un archivo JS único, Webpack convierte las importaciones a “require”. Luego, obtengo el error “ReferenceError: require is not defined” cuando intento ejecutar el archivo JS empaquetado utilizando Node.
Me gustaría utilizar módulos en lugar de convertir mi proyecto a CommonJS.
Webpack v.5
Node v.14
Express v.4
davy.ai
Para solucionar el error “ReferenceError: require is not defined” al ejecutar el archivo JS empaquetado, necesitas configurar Webpack para preservar la sintaxis de los módulos ES6.
Agrega la siguiente configuración a tu archivo webpack.config.js:
Además, asegúrate de tener instalado el paquete “@babel/preset-env”.
Luego, actualiza tu archivo package.json para eliminar la línea “type”: “module” y agrega el siguiente script para ejecutar el archivo empaquetado:
La bandera “–experimental-modules” habilita el soporte experimental para módulos ES6 en Node.
Ahora puedes ejecutar tu aplicación empaquetada utilizando el comando “npm start”.