簡體   English   中英

在 heroku 上部署 typeorm/typescript 應用程序

[英]Deploying typeorm/typescript app on heroku

我在 heroku 上部署 typeorm 應用程序時遇到問題。 這是這個應用程序的完全簡約版本: https://github.com/wiktorkujawa/typeorm-heroku

所以我做了什么:

  1. 啟動項目 typeorm init --name typeorm-heroku --database postgres

服務器(typeorm-postrges 文件夾)

  1. 在服務器文件夾(cd typeorm-postgres)中輸入:npx tsconfig.json(選擇例如節點)創建 yarn.lock 文件並更新它...

服務器的已安裝依賴項。

index.tsx 中的簡單連接添加了 Procfile 文件(沒有改變)

客戶

  1. 創建 react 項目並為其安裝依賴項: npx create-react-app web --typescript yarn add... 2.在 src 文件夾中創建 graphql 文件夾並在生成器中初始化 Z572CDA51902B5B517C0E1A2B2QFD0404BZ 代碼

    您的架構在哪里?:http://localhost:4000/graphql 您的操作和片段在哪里?:src/graphql/*.graphql 在哪里寫 Z78E6221F6393D1356681 腳本(默認為 DB398F)...(46681letDB398F 腳本) package.json 應該運行代碼生成器嗎?

在 codegen.yml 添加:

config:
       hooksImportFrom: '@apollo/react-hooks'
       withHooks: true
       withHOC: false
       withComponent: false

並安裝了 codegen 的依賴項:yarn 3. 生成模式:yarn gen 4. 在 index.tsx 中,從https://www.apollographql.com/docs/react/migrating/boost-migration/#advanced-migration復制代碼

  1. 閱讀簡單列表查詢以檢查查詢是否有效,但它僅在開發模式下有效。 在 heroku 我得到大的 heroku 頁面:

應用程序錯誤 應用程序發生錯誤,無法提供您的頁面。 如果您是應用程序所有者,請查看您的日志以了解詳細信息。 您可以從 Heroku CLI 使用命令 heroku logs --tail 執行此操作

這是在終端中輸入 heroku logs --tail 后的錯誤:

2020-06-28T18:40:57.079023+00:00 app[web.1]: > typeorm-heroku@0.0.1 start /app
2020-06-28T18:40:57.079024+00:00 app[web.1]: > ts-node src/index.ts
2020-06-28T18:40:57.079024+00:00 app[web.1]:
2020-06-28T18:40:57.085699+00:00 app[web.1]: sh: 1: ts-node: not found
2020-06-28T18:40:57.095880+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-06-28T18:40:57.096505+00:00 app[web.1]: npm ERR! syscall spawn
2020-06-28T18:40:57.097800+00:00 app[web.1]: npm ERR! file sh
2020-06-28T18:40:57.098220+00:00 app[web.1]: npm ERR! errno ENOENT
2020-06-28T18:40:57.099843+00:00 app[web.1]: npm ERR! typeorm-heroku@0.0.1 start: `ts-node src/index.ts`
2020-06-28T18:40:57.100130+00:00 app[web.1]: npm ERR! spawn ENOENT
2020-06-28T18:40:57.100384+00:00 app[web.1]: npm ERR!
2020-06-28T18:40:57.100546+00:00 app[web.1]: npm ERR! Failed at the typeorm-heroku@0.0.1 start script.
2020-06-28T18:40:57.100713+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2020-06-28T18:40:57.119552+00:00 app[web.1]:
2020-06-28T18:40:57.120040+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2020-06-28T18:40:57.120170+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2020-06-28T18_40_57_105Z-debug.log
2020-06-28T18:40:57.195532+00:00 heroku[web.1]: Process exited with status 1
2020-06-28T18:40:57.257902+00:00 heroku[web.1]: State changed from starting to crashed
2020-06-28T18:41:03.656226+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=typeorm-heroku.herokuapp.com request_id=4e810375-5365-47c5-bccd-a6b28a893359 fwd="178.235.225.93" dyno= connect= service= status=503 bytes= protocol=https
2020-06-28T18:41:04.010781+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=typeorm-heroku.herokuapp.com request_id=1a30a549-55a7-49af-a6b5-f199ee78fda0 fwd="178.235.225.93" dyno= connect= service= status=503 bytes= protocol=https

好吧,我認為問題出在package.json,但我不知道如何解決。

解決方案是在依賴項(而不是 devDependencies)中安裝 ts-node。

What is your node package version you can check it by typing npm -v if it's new like v12.xx try to downgrade to v10.16 and change it in the package.json

刪除node_modules文件夾並運行npm install重新安裝所有項目依賴項

使用 docker 將后端服務器部署到 heroku。 並在vercel上部署前端。 這就是我通常部署 typescript 應用程序的方式。 您可以按照https://github.com/benawad/lireddit/blob/master/server/Dockerfile中給出的設置 docker 服務器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM