typescript - Distribuera ExpressTS till vercel


Jag har skapat ett Express TypeScript-projekt på GitHub och försöker distribuera till Vercel. Nedan är mappstrukturen, och dist är där app.js kommer att finnas och src är där app.ts finns.

  • dist
  • dto
  • mellanprogram
  • modeller
  • src
  • .gitignore
  • package.json
  • package-lock.json
  • LÄS.MIG.md
  • tsconfig.json
  • vercel.json

Och detta är min vercel.json

{
  "version": 2,
  "builds": [
    {
      "src": "./app.js",
      "use": "@vercel/node"
    }
  ]
}

Detta är inställningen på Vercel när man distribuerar

  • byggkommando: tsc -p .
  • utmatningskatalog: dist
  • andra inställningar är bara standard

Github-URL:en för detta projekt är https://github.com/FrankJi1019/today-diary-backend, vänligen ta en titt om min beskrivning inte är tillräckligt tydlig

Tack i förväg!

Svar #1

Du bör ta bort utdata-mappen i .gitignore-filen, i mitt fall är det dist. Bygg sedan projektet

Och uppdatera din vercel.json på detta sätt

{
    "version": 2,
    "builds": [
        {
            "src": "./dist/app.js",
            "use": "@vercel/node"
        }
    ],
    "routes": [
        {
            "src": "/(.*)",
            "dest": "/dist/app.js"
        }
    ]
}

Hoppas detta hjälper

Svar #2

Jag

 think this is not correct one.  
1.( "builds": [
        {
            "src": "./dist/app.js",
            "use": "@vercel/node"
        }
    ],) => this block of code means @vercel/node will use app.js from dist folder 
           to compile the code to js from ts file. here you should use src/app.ts. 
           
2. ( "routes": [
        {
            "src": "/(.*)",  => this block of code means whatever the request is 
            `"dest": "/dist/app.js"`  => redirect to dist/app.js file 
        } 
    ])