【发布时间】:2021-03-13 11:18:52
【问题描述】:
我无法将 Node.js 打字稿应用程序部署到 Heroku。如果您能帮助我,那就太好了。
如果我运行npm run build、npm run start 或npm run start:dev,一切似乎都运行良好。当我尝试使用 git push heroku main 将我的应用程序部署到 Heroku 时,我收到以下错误:
我检查了我的应用程序中的每个导入,但在我的package.json 中的"dependencies" 中找不到一个不正确或缺失的导入。
我确实对解决方案一无所知,但我认为一些额外的信息可能有用:
文件结构:
过程文件:
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=production&& npm run build && node build/server.js",
"start:dev": "set NODE_ENV=development&& npm run build && nodemon --ext \".ts,.js\" --watch \"./src\" --exec \"ts-node ./src/server.ts\"",
"start:local": "set NODE_ENV=local&& 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 && tsc"
}
【问题讨论】:
-
该屏幕截图未显示错误消息中的任何模块。但是在回购中我注意到它是例如
Interface不是interface。看起来您在本地使用 Windows; Heroku dyno 是 Linux,你必须小心你的外壳。 -
哦,是的,我会更新截图。我使用 PascalCase 作为文件名。当我在套管上检查所有导入时,我将尝试再次部署该应用程序。如果运行没有任何错误,我会提前投票赞成你的评论:) Ty!
-
似乎 github 没有更改文件名。虽然我在本地有正确的文件名,但在 github 中它们都是错误的,所以我不得不删除项目 gitfile,更改文件名并在初始化一个新的 git 文件后强制推送。再次感谢@jonrsharpe 帮助我。如果其他人读到这个:注意命名 -> 本地文件名必须匹配 github 文件名
标签: node.js typescript heroku