21
votes

I've been building a web app in Ember, and am ready to put it on a server for public use. I just want to make the /dist/ folder, which i will then manually upload to a server via FTP.

How do I build a dist for this in Ember? I can't figure out how to turn on minification and remove the tests files from the build.

I'm guessing it has something to do with my Brocfile.js, bower.json, package.json, environment.js or tester.json files, but I don't really know which one, or what that config would look like.

Bonus: I'd like to know how to turn disable/enable minification too, as I want to share my production build with a colleague to see.

It should be more that just "ember build --environment production". What files do I need to change to enable/disable minfication, to include tests etc? Or is that what "ember build --environment production" does?

Thanks!

2
ember build --environment=productionPatsy Issa
Why should it be more than that command? And have you read the docs ? MinificationPatsy Issa
@Kitler, OK, so that goes inside an if statement on the brocfile? What about tests?Drew Baker
Tests are excluded when build is run in production mode.Patsy Issa

2 Answers

30
votes

All you need to do to create your dist folder is to run:

ember build --environment=production

or as @Simon has mentioned

ember build -prod

But to add some meat to the bones:

If you need to change settings, you can do this by finding your environment.js file which should be in the config folder.

The Ember documents suggest changing the locationType: 'hash' to ensure the history works ok with the router.

You have a section which will look like this, where you can add ENV.theVariableToSet = 'myValue'; for anything you want to change

if (environment === 'production') {
  ENV.locationType = 'hash'
}
-4
votes

For anyone looking, you would add this to your Brocfile.js (found in the App root)

// When in Production mode, minify code
if (app.env === 'production') {
    minifyCSS: {
        enabled: true
    }
    minifyJS: {
        enabled: true
    }
}

Then run this command in Terminal (make sure you are in your App directory):

ember build --environment=production