How to deploy on Heroku?

We recommend you read the Heroku documentation for Node.js.

First, we need to tell Heroku to install the devDependencies of the project (to be able to launch npm run build):

heroku config:set NPM_CONFIG_PRODUCTION=false

Also, we want our application to listen on the host 0.0.0.0 and run in production mode:

heroku config:set HOST=0.0.0.0
heroku config:set NODE_ENV=production

You should see this in your Heroku dashboard (Settings section):

nuxt config vars Heroku

Then, we tell Heroku to launch npm run build via the heroku-postbuild script in our package.json:

"scripts": {
  "dev": "nuxt",
  "build": "nuxt build",
  "start": "nuxt start",
  "heroku-postbuild": "npm run build"
}

Heroku uses a Procfile (name the file Procfile with no file extension) that specifies the commands that are executed by the apps dynos. To start the Procfile will be very simple, and needs to contain the following line:

web: npm run start

This will instruct run the npm run start command and tell heroku to direct external HTTP traffic to it.

Finally, we can push the app on Heroku with:

git push heroku master

To deploy a non-master brach to Heroku use:

git push heroku develop:master

where develop is the name of your branch.

Voilà! Your Nuxt.js application is now hosted on Heroku!

Caught a mistake or want to contribute to the documentation? Edit this page on GitHub!