![](/img/trans.png)
[英]tsc not found in typescript express and react app when deploying to 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.