node.js - Loopback 4 implementacija na Heroku, lb-tsc nije pronađen


Pokušavam implementirati LoopBack 4 aplikaciju na Heroku. Ali nakon objavljivanja, naredba npm start ne radi u Heroku konzoli. Izbacuje grešku sh: 1: lb-tsc nije pronađen. package.json je sljedeći

"devDependencies": {
"@loopback/build": "^3.0.0",
"@loopback/eslint-config": "^5.0.0",
"@loopback/testlab": "^1.10.0",
"@types/node": "^10.17.6",
"@typescript-eslint/eslint-plugin": "^2.10.0",
"@typescript-eslint/parser": "^2.10.0",
"eslint": "^6.7.2",
"eslint-config-prettier": "^6.7.0",
"eslint-plugin-eslint-plugin": "^2.1.0",
"eslint-plugin-mocha": "^6.2.2",
"source-map-support": "^0.5.16",
"typescript": "~3.7.3"},
"scripts": {
    "build": "lb-tsc",
    "build:watch": "lb-tsc --watch",
    "clean": "lb-clean dist *.tsbuildinfo",
     .......
    "lb-tsc": "lb-tsc",
    "postinstall": "npm run lb-tsc"
  }

Odgovor #1

Kreiranje Procfile u korijenu projekta koji sadrži web: node . riješilo je problem za mene. Bez njega, Heroku će prema zadanim postavkama pokrenuti aplikaciju pozivom npm run koji pokušava pokrenuti proces buildanja, a budući da je @loopback/build prema zadanim postavkama postavljen kao dev ovisnost, to rezultira greškom lb-tsc not found.

Odgovor #2

Kada heroku pokreće Node aplikaciju, vrijednost process.env.NODE_ENV je "production"; to možete provjeriti iz Heroku terminala bash upisivanjem node i potom process.env. To znači da razvojne ovisnosti nisu riješene.

Donji koraci mi savršeno funkcioniraju

  1. Otvorite datoteku package.json, kopirajte sve iz odjeljka dev dependency i zalijepite u odjeljak dependency u package.json
  2. git add . zatim git commit i zatim git push heroku master

Drugo rješenje: Nakon što pošaljete datoteke na Heroku koristeći git push heroku master, idite na Heroku terminal s https://dashboard.heroku.com/ i pokrenite konzolu, a zatim izvršite naredbu node dist/index.js tako da će ova naredba pokrenuti LoopBack aplikaciju. Provjerite je li mapa dist dostupna.

Povezani članci