Si tienes problemas para iniciar tu App de Node.js y en el "Passenger log" de tu aplicación encuentras un error "ERR_REQUIRE_ESM" similar al siguiente:
Error [ERR_REQUIRE_ESM]: require() of ES Module app.js from node-loader.js not supported.
Instead change the require of index.js in node-loader.js to a dynamic import() which is available in all CommonJS modules.
A continuación te explicamos por qué sucede y cómo solucionarlo:
El error "ERR_REQUIRE_ESM" sucede en cuando la aplicación de Node.js que queremos ejecutar se está intentando cargar módulos "ECMAScript", en lugar de módulos clásicos de JavaScript "CommonJS".
Como Node.js no admite directamente el uso de módulos ECMAScript cuando se requieren desde módulos CommonJS, debemos hacer un "wrapper" con una importación dinámica "import()" para permitir que el módulo con ECMAScript se pueda cargar correctamente.
Para ello, haz lo siguiente:
- En el directorio raíz de tu aplicación, crea un archivo llamado "app_wrapper.cjs" (la extensión es ".cjs"), con el siguiente contenido:
(() => import('./app.js'))();
Debes reemplazar "app.js" con el nombre del archivo principal de tu aplicación. - Dentro del gestor de aplicaciones de Node.js de tu hosting, edita tu aplicación cambiando el "Application startup file" por este nuevo archivo creado "app_wrapper.cjs":
- Haz clic en "Guardar" y luego en "Restart" para aplicar los cambios:
¡Listo! Tu aplicación deberá funcionar correctamente ahora.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.