在生产问题中部署 Typescript GraphQL

deploy Typescript GraphQL in production issue

我已经尝试了一个星期来研究并将我的服务部署到生产环境中,但总是无法编译,我的服务器使用 Typescript、Nexus GraphQL、带有 docker-compose 的 Prisma,在开发模式下我可以 运行 smoothy with ts-node-dev 在第一次 运行ning 我的应用程序之前,我需要激活 docker-compose 的 Prisma 然后部署 Prisma 服务和生成的服务,然后我 运行 ts-node-dev,这是可行的,但是当我在 ts-node 中进行生产时,它失败了,我也尝试使用 pm2 但它不起作用,因为当我使用 ts-node 时,它总是无法编译我的服务器。

我在 pm2 上的这个公开问题中尝试了很多选项 GitHub running typescript with pm2

我也试过了 pm2 start ts-node -- -P tsconfig.server.json ./src 我的 tsconfig.server.json 喜欢这样

{
  "extends": "./tsconfig",
  "compilerOptions": {
    "sourceMap": false
  }
}

这是我的基地 tsconfig.json :

{
    "compilerOptions": {
         "lib": ["esnext", "dom"],
          "sourceMap": true, 
          "outFile": "./",
          "outDir": "./dist",  
          "strictFunctionTypes": true,
          "strictBindCallApply": true,
          "noImplicitThis": true,                
          "alwaysStrict": true, 
          "skipLibCheck": true,  
          "esModuleInterop": true
    }
}

我运行我上面提到的命令

后编译失败

我试过使用 PM2 生态系统,它仍然是一样的,没有任何作用 我的生态系统是这样的

{
    "script": "ts-node",
    "args": "./src"
}

你们都用 Typescript 制作成功了吗?? 我能知道你如何部署它们吗? 如果您为此分享您的经验,这对我来说意味着 :) 并希望您能提供帮助 :)

请尝试使用 tsc 转译您的项目。例如。 tsc --outDir dist/ 在 dist 文件夹中创建有效的 .js 文件。如果在转译过程中有任何错误,您需要修复它们。

成功转译后,您可以使用节点从 dist 文件夹提供有效的 js。例如。 node dist/src/index.js.