#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
, я получаю следующую ошибку:
Я проверил каждый импорт в своем приложении, но не смог найти ни одного неправильного или отсутствующего "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!!