CKM Blog

Syndicate content
UCSF Center for Knowledge Management
Updated: 5 min 5 sec ago

Ember CLI, Heroku, and You

Mon, 2015-03-23 10:15

A disclaimer: This is not for use in production. Doing this for a production app would be a bad decision.

The problem: Developers on the Ilios Project need to be able to share their changes with other team members. While it is possible to deploy a static Ember CLI app nearly anywhere, we want to include our mock API so everyone is looking at the same data.

The solution: Use Heroku to host an Ember CLI application running its built in Express server.

Start by reading Heroku’s excellent Getting Started in NodeJs documentation. Make sure you set up a demo app as instructed.

Now lets create a branch and setup your own Ember CLI app.

cd [YOUR APP DIRECTORY] git checkout -b heroku heroku create [whatever-name-you-want]

You will now have a Procfile in your apps root directory. Change the contents to:

web: ember serve --port $PORT --live-reload=false

This will tell Heroku how to start your Ember CLI app using the port of their choice, and to switch off live-reload.

Next we need to insure that npm will install bower for us.

npm install bower --save-dev

Then we have to modify our package.json to run bower install after npm install. Do this by adding "postinstall": "./node_modules/bower/bin/bower install" to the scripts section.

"scripts": { "start": "ember server", "build": "ember build", "test": "ember test", "postinstall": "./node_modules/bower/bin/bower install" },

We want to make sure npm installs all of our development dependencies for us. Including Ember CLI itself, this is done by setting a configuration variable on Heroku.

heroku config:set NPM_CONFIG_PRODUCTION=false

That should do it. Commit your changes and push your branch to Heroku. If everything works, merge the branch into master.

# git add Procfile package.json # git commit -m "Our heroku setup" # git push heroku heroku:master

Enjoy!
@iam_jrjohnson

Categories: CKM