Ola:Heroku 1:1 - wprowadzka do Heroku cz. 3

Trochę się nagimnastykowałam, próbując różnych rozwiązań, żeby uruchomić równocześnie Gradle i NodeJS na tej samej platformie. Niestety w darmowej wersji Heroku jest to niewykonalne. Każdy z tych wątków musi być uruchomiony na dyno typu web, żeby posiadał adres inny, niż localhost. Postanowiłam stworzyć dwie aplikacje na Heroku, speech-rank i speech-rank-api. Składnia jest dość toporna, bo przy tworzeniu wielu aplikacji dla tego samego repo trzeba 


 $ heroku create --remote speech-rank-api speech-rank-api

pierwsze speech-rank-api odwołuje się do nazwy roboczej, której będziemy używać w konsoli, drugie do nazwy aplikacji na Heroku. 

Zmieniłam też sposób uruchamiania aplikacji na Express, żeby łatwiej było ładować statyczny kontent i mój index.js wygląda następująco:
var express = require('express')    
const path = require('path');
var app = express()

app.set('port', (process.env.PORT || 80))
app.use(express.static(path.join('.', 'build/web')))

app.listen(app.get('port'), function() {
  console.log(" Node app is running at localhost:" + app.get('port'))
})
W Procfile aplikacja node-owa ma web: npm start, co wymagało zmian w package.json 
"start": "node index.js",
"postinstall": "gulp"
Ważne, żeby z gulpfile.js wyrzucić część odpowiedzialną za watch, żeby projekt się budował. Watch zawiesza konsolę i build kończy się timeout'em. 

Przegrałam kilka bitew, ale ostatecznie wojna zakończyła się sukcesem, czyli frontendem i backendem komunikujacych się ze sobą poprawnie!

Komentarze

Popularne posty z tego bloga

Jeśli jesteś najmądrzejszą osobą w pokoju, to jak najszybciej zmień pokój!

Kto jest bardziej inteligentny od Ciebie?

Fastline dla kobiet w IT? Nie, dziękuję.