将 TypeScript Express 服务器部署到 Heroku
Deploying TypeScript Express Server to Heroku
在尝试将 Express TypeScript 服务器部署到 Heroku 时,我遇到了错误。我 运行 heroku logs --tail
这是输出:
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 添加一个构建包,heroku buildpacks:search
上出现的那个是 zidizei/typescript。我已经安装了但没有成功。
进一步研究建议使用 heroku node/js buildpack。我 运行 heroku buildpacks:set heroku/nodejs
并尝试过但没有成功。所以我切换回 zidizei,编译和构建,除了服务器启动。
我对问题的根源感到困惑,我想我可能已经转过身来了。
我采取的其他步骤:
// 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",
似乎在某个时候我在我的文档中转过身来,除了明显的那个之外,到处都在寻找。
在尝试将 Express TypeScript 服务器部署到 Heroku 时,我遇到了错误。我 运行 heroku logs --tail
这是输出:
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 添加一个构建包,heroku buildpacks:search
上出现的那个是 zidizei/typescript。我已经安装了但没有成功。
进一步研究建议使用 heroku node/js buildpack。我 运行 heroku buildpacks:set heroku/nodejs
并尝试过但没有成功。所以我切换回 zidizei,编译和构建,除了服务器启动。
我对问题的根源感到困惑,我想我可能已经转过身来了。
我采取的其他步骤:
// 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",
似乎在某个时候我在我的文档中转过身来,除了明显的那个之外,到处都在寻找。