Развертывание Node.js приложение typescript для heroku

#node.js #typescript #heroku

#node.js #typescript #heroku

Вопрос:

Я застрял при развертывании Node.js машинописное приложение к Heroku. Было бы здорово, если бы вы могли мне помочь.

Если я запущу npm run build , npm run start или npm run start:dev все, кажется, работает просто отлично. Когда я пытаюсь развернуть свое приложение в Heroku, используя git push heroku main , я получаю следующую ошибку:

Ошибка развертывания Heroku

Я проверил каждый импорт в своем приложении, но не смог найти ни одного неправильного или отсутствующего "dependencies" в моем package.json .

Я действительно ничего не знаю о решении, но я подумал, что может быть полезна дополнительная информация:

структура файла:

структура файла

procfile:

 web: node build/server.js
 

tsconfig.json:

 {
  "compilerOptions": {
    "target": "es5",                     
    "module": "commonjs",                  
    "lib": ["es6"],                     
    "allowJs": true,
    "outDir": "./build",                          
    "rootDir": "./src",
    "strict": true,         
    "noImplicitAny": true,
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}
 

Скрипты:

   "scripts": {
    "start": "set NODE_ENV=productionamp;amp; npm run build amp;amp; node build/server.js",
    "start:dev": "set NODE_ENV=developmentamp;amp; npm run build amp;amp; nodemon --ext ".ts,.js" --watch "./src" --exec "ts-node ./src/server.ts"",
    "start:local": "set NODE_ENV=localamp;amp; nodemon",
    "test": "ts-mocha -p ./tsconfig.json ./src/**/*.spec.ts",
    "coverage": "nyc -r lcov -e .ts -x "*.test.ts" npm run test",
    "build": "rimraf ./build amp;amp; tsc"
  }
 

Комментарии:

1. На этом скриншоте не отображается ни один из модулей из сообщения об ошибке. Но, глядя в репозиторий, я замечаю, что это, например Interface , нет interface . Похоже, вы используете Windows локально; Heroku dyno — это Linux, вам придется позаботиться о своем корпусе.

2. О, да, я обновлю скриншот. Я использовал PascalCase для имен файлов. Я попытаюсь снова развернуть приложение, когда также проверю весь свой импорт в оболочке. Если это работает без каких-либо ошибок, я поддержу ваш комментарий 🙂 Заранее спасибо!

3. Похоже, что github не изменил имена файлов. Хотя у меня были правильные имена файлов локально, в github все они были неправильными, поэтому мне пришлось удалить git-файл проектов, изменить имена файлов и принудительно запустить после ввода нового git-файла. Еще раз спасибо за помощь @jonrsharpe. Если кто-то еще читает это: обратите внимание на namecasing -> локальные имена файлов должны совпадать с именами файлов github

Ответ №1:

Похоже, что github не изменил мои имена файлов. Хотя у меня были правильные имена файлов локально, в github все они были ошибочно обработаны. Мне пришлось удалить git-файл проектов, изменить имена файлов и принудительно загрузить в мое репозиторий git после того, как я инициализировал новый git-файл в своем проекте. Благодаря @jonrsharpe я заметил, насколько важным может быть корпус и как мы должны внимательно следить за тем, чтобы все было написано так, как должно быть. Если кто-то еще столкнулся с той же проблемой: обратите внимание на namecasing -> локальные имена файлов должны совпадать с именами файлов github!!