node.js - Deployment Loopback 4 di Heroku, error lb-tsc tidak ditemukan
Saya sedang mencoba untuk menyebarkan aplikasi LoopBack 4 ke Heroku. Tetapi setelah dipublikasikan, perintah npm-start tidak bekerja di konsol Heroku. Ini menampilkan sh: 1: lb-tsc tidak ditemukan. package.json adalah sebagai berikut
"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"
}
Jawaban #1
Membuat Procfile di root proyek yang berisi web: node . memperbaiki ini untuk saya. Tanpanya, Heroku akan secara default memulai aplikasi dengan memanggil npm run yang mencoba menjalankan proses build, dan karena @loopback/build diatur sebagai dependensi dev secara default, ini menghasilkan kesalahan lb-tsc not found.
Jawaban #2
Ketika heroku menjalankan aplikasi node, nilai dari process.env.NODE_ENV adalah "production". Anda dapat memeriksanya dari terminal bash heroku dengan mengetik node dan kemudian process.env. Dan ini berarti bahwa dependensi dev tidak diselesaikan.
Langkah-langkah di bawah ini bekerja dengan baik untuk saya
- Buka file package.json, salin semua dari bagian dev dependency dan tempelkan ke bagian dependency di package.json
- git add . kemudian git commit dan kemudian git push heroku master
Solusi Lain: Setelah mendorong file ke Heroku menggunakan git push heroku master, pergi ke terminal Heroku dari https://dashboard.heroku.com/ dan mulai konsol, lalu jalankan perintah node dist/index.js sehingga perintah ini akan memulai aplikasi loopBack, pastikan folder dist tersedia.