Сбой приложения NodeJS на Heroku Из-За Неподдерживаемого Импорта Каталогов

#node.js #heroku

#node.js #героку

Вопрос:

Поэтому я просто пытаюсь развернуть свой сервер узлов в облаке Heroku. Он выходит из строя из-за проблемы с не поддерживаемыми модулями ES. Конкретная ошибка, которую я получаю, заключается в следующем

 Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/app/src/routes' is not supported resolving ES modules imported from /app/src/server.js  

Я пытаюсь импортировать свой каталог маршрутов. Я прочитал решения в стеке, связанные с этой проблемой, и ни одно из них не работает для меня. Например, включение «типа»:»модуль» в мой пакет.json НЕ работает.

Что происходит? Он отлично работает локально, используя скрипт «npm run dev». Железный человек

пакет.json

 {  "name": "back-end",  "type": "module",  "version": "1.0.0",  "description": "",  "engines": {  "node": "14.x"  },  "main": "index.js",  "scripts": {  "dev": "nodemon --exec babel-node -r dotenv/config ./src/server.js",  "test": "echo "Error: no test specified" amp;amp; exit 1",  "start": "node -r dotenv/config ./src/server.js"  },  "keywords": [],  "author": "",  "license": "ISC",  "dependencies": {  "@babel/core": "7.13.10",  "@babel/node": "7.13.12",  "@babel/preset-env": "7.13.12",  "@sendgrid/mail": "^7.6.0",  "axios": "^0.24.0",  "bcrypt": "^5.0.1",  "dotenv": "^10.0.0",  "esm": "^3.2.25",  "express": "4.17.1",  "googleapis": "^92.0.0",  "jsonwebtoken": "^8.5.1",  "mongodb": "3.6.5",  "uuid": "^8.3.2"  },  "devDependencies": {  "nodemon": "2.0.7"  } }  

Ответ №1:

Ответ, решение, заключалось в том, чтобы потребовать пакет esm при запуске:

 "start": "node -r esm -r dotenv/config ./src/server.js"