20/03/2021 - deploy node app to heroku
this is a react app run on express server app. backend and frontend.
tidying up the directories and pre production code
server js
// const __dirname = path.resolve();
if ((process.env.NODE_ENV = 'production')) {
app.use(express.static(path.join(__dirname, 'my-app/build')));
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, 'my-app', 'build', 'index.html'));
});
}
package json
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix "<frontend folder>" && npm run build --prefix "<frontend folder>"
procfile
web: node src/server.js
.gitignore
/nodemodules
.env
//test run your app before deploy
.env
NODE_ENV=production
//terminal
cd <frontend folder>
npm run build
cd ..
cd <backend folder>
npm run start
//change back to development
//deploying to heroku
1. push to git repo
2. install heroku cli
3. run heroku command to create app and push code
4. add config vars
5. trouble shoot
//terminal
git init
git add .
git commit -m '<comment>'
git add remote origin <url>
git branch -m <main branch name, use "main">
git push origin main
//install heroku cli on windows if you havent
//terminal
heroku login
heroku create <app name>
heroku git:remote -a <app name>
heroku push main
..
//heroku>your app>settings>reveal config vars>{keys, PORT, NODE_ENV}>open app
..
heroku open
..
heroku logs --tail
//heroku does not read env files you have to add n environment variables yourself
//heroku push>config vars>open herou app>open log> refresh app> check log>troubleshoot>push to git and heroku again
//if you have an errors you need to fix and deploy your code again to git and run heroku push main
references
- step by step deploy for nodejs environment
- https://devcenter.heroku.com/articles/getting-started-with-nodejs
- relevant git commands
- https://devcenter.heroku.com/articles/git
- common error codes
- https://devcenter.heroku.com/articles/error-codes
Comments