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
- Otvorite datoteku package.json, kopirajte sve iz odjeljka dev dependency i zalijepite u odjeljak dependency u package.json
- 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.