繁体   English   中英

将 TypeScript Express 服务器部署到 Heroku

[英]Deploying TypeScript Express Server to Heroku

当我尝试将我的服务器部署到 Heroku 时,构建和一切都很顺利。 每当我尝试 ping 我的 API 以检查我的服务器状态(无论是启动还是关闭)时,它都会返回错误(服务器已关闭)。 所以,我运行heroku logs --tail这是 output:

2021-12-02T21:09:20.152292+00:00 app[web.1]: > backend@1.0.0 start /app
2021-12-02T21:09:20.152292+00:00 app[web.1]: > ts-node src/index.ts
2021-12-02T21:09:20.152292+00:00 app[web.1]: 
2021-12-02T21:09:20.164793+00:00 app[web.1]: sh: 1: ts-node: not found
2021-12-02T21:09:20.176470+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2021-12-02T21:09:20.176764+00:00 app[web.1]: npm ERR! syscall spawn
2021-12-02T21:09:20.176897+00:00 app[web.1]: npm ERR! file sh
2021-12-02T21:09:20.177050+00:00 app[web.1]: npm ERR! errno ENOENT
2021-12-02T21:09:20.184008+00:00 app[web.1]: npm ERR! backend@1.0.0 start: `ts-node src/index.ts`
2021-12-02T21:09:20.184048+00:00 app[web.1]: npm ERR! spawn ENOENT
2021-12-02T21:09:20.184122+00:00 app[web.1]: npm ERR!
2021-12-02T21:09:20.184186+00:00 app[web.1]: npm ERR! Failed at the backend@1.0.0 start script.
2021-12-02T21:09:20.184240+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2021-12-02T21:09:20.189489+00:00 app[web.1]: 
2021-12-02T21:09:20.192700+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2021-12-02T21:09:20.192779+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2021-12-02T21_09_20_184Z-debug.log
2021-12-02T21:09:20.372397+00:00 heroku[web.1]: Process exited with status 1
2021-12-02T21:09:20.745674+00:00 heroku[web.1]: State changed from starting to crashed

根据我自己的研究,建议我为 TypeScript 放入一个 buildpack, heroku buildpacks:search是 zidizei/typescript。 所以我安装了它,它没有工作。

好的,所以更多的研究,我应该有 heroku node/js buildpack。 我跑了heroku buildpacks:set heroku/nodejs并尝试过,没有用。 所以我切换回 zidizei,一切都编译和构建,除了服务器启动。

我对发生了什么感到困惑,我想现在我已经尝试了 2 个小时,我完全迷失了方向,并在文档中翻了个身。

我知道这是一个愚蠢的初学者问题,但如果你们都可以看到我打开了多少标签和 SO 文章,你可能会考虑遗憾。 :)

我采取的其他步骤:

// package.json

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "ts-node src/index.ts",
    "dev": "ts-node-dev src/index.ts",
    "build": "tsc",
    "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
    "db:generate-migration": "yarn typeorm -- migrate:generate --config ormconfig.ts --connection --name",
    "db:run-migration": "yarn typeorm -- migration:run"
// Procfile

web: npm start

或者,是否有任何强大的 heroku 竞争者来托管快速服务器和 Postgres 数据库?

添加:我注意到当我使用heroku run bash --app <my_app_name>进入环境时,正在构建 dist 文件夹。 将我的启动脚本指向node dist/src/index.js?

好的,所以对于其他正在阅读本文的人。

我的解决方案是:

package.json中,我所要做的就是更改我的启动脚本

"start": "ts-node src/index.ts",

"start": "node dist/src/index.js",

似乎在某个时候,我在我的文档中翻了个身,除了明显的那个之外,我一直在寻找各种方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM