{"action":"created","comment":{"url":"https://api.github.com/repos/emberjs/guides/pulls/comments/36063817","id":36063817,"diff_hunk":"@@ -0,0 +1,341 @@\n+Ember can automatically build assets for production environments. In these cases,\n+assets will be minified, versioned and the production versions of libraries will be\n+used.\n+\n+### Raw Assets\n+\n+* `public/assets` vs `app/styles`\n+\n+To add images, fonts, or other assets, place them in the `public/assets` directory. For\n+example, if you place `logo.png` in `public/assets/images`, you can reference it in\n+templates with `assets/images/logo.png` or in stylesheets with\n+`url('/assets/images/logo.png')`.\n+\n+### Minifying\n+\n+The compiled css-files are minified by `broccoli-clean-css` or `broccoli-csso`,\n+if it is installed locally. You can pass minifer-specific options to them using\n+the `minifyCSS:options` object in your Brocfile. Minification is enabled by\n+default in the production-env and can be disabled using the `minifyCSS:enabled`\n+switch.\n+\n+Similarly, the js-files are minified with `broccoli-uglify-js` in the\n+production-env by default. You can pass custom options to the minifier via the\n+`minifyJS:options` object in your Brocfile. To enable or disable JS minification\n+you may supply a boolean value for `minifyJS:enabled`.\n+\n+For example, to disable minifying of CSS and JS, add in `Brocfile.js`:\n+```Brocfile.js\n+minifyCSS: {\n+  enabled: false\n+},\n+minifyJS: {\n+  enabled: false\n+}\n+```\n+\n+### Source Maps\n+\n+Ember CLI supports producing source maps from your CSS and JS files.\n+Source maps are configured by the `sourcemaps` option and\n+are disabled in production by default.\n+\n+In dev, the default setting is equal to:\n+\n+```Brocfile.js\n+sourcemaps: {\n+  enabled: true,\n+  extensions: ['js']\n+}\n+```\n+\n+Pass `{enabled: true}` to your EmberApp constructor to enable source maps for javascript.\n+Use the `extensions` option to configure CSS.\n+\n+### Stylesheets\n+\n+Ember CLI supports plain CSS out of the box. You can add your css styles to\n+`app/styles/app.css` and it will be served at `assets/application-name.css`.\n+\n+For example, to add bootstrap in your project you need to do the following:\n+```bash\n+bower install bootstrap --save\n+```\n+\n+In `Brocfile.js` add the following:\n+```Brocfile.js\n+app.import('bower_components/bootstrap/dist/css/bootstrap.css');\n+```\n+it's going to tell [Broccoli](https://github.com/joliss/broccoli) that we want this file to be concatenated with our `vendor.css` file.\n+\n+To use a CSS preprocessor, you'll need to install the appropriate\n+[Broccoli](https://github.com/joliss/broccoli) plugin. When using a\n+preprocessor, Broccoli is configured to look for an `app.less`, `app.scss`, `app.sass`,\n+or `app.styl` manifest file in `app/styles`. This manifest should import any\n+additional stylesheets.\n+\n+All your preprocessed stylesheets will be compiled into one file and served at\n+`assets/application-name.css`.\n+\n+If you would like to change this behavior, or compile to multiple output stylesheets, you can adjust the [Output Paths Configuration](#configuring-output-paths)\n+\n+#### CSS\n+\n+* Relative pathing gets changed (how to customize?)\n+* `@import` statements -> concat\n+\n+To use one of the following preprocessors, all you need to do is install the appropriate NPM module.\n+The respective files will be picked up and processed automatically.\n+\n+#### LESS\n+\n+To enable [LESS](http://lesscss.org/), you'll need to add\n+[ember-cli-less](https://github.com/gdub22/ember-cli-less) to\n+your NPM modules.\n+\n+```bash\n+ember install ember-cli-less\n+```\n+\n+#### Sass\n+\n+To enable [Sass](http://sass-lang.com/), you'll need to\n+install the [ember-cli-sass](https://github.com/aexmachina/ember-cli-sass) addon\n+to your project *(both .scss/.sass are allowed)*.\n+\n+```bash\n+ember install ember-cli-sass\n+```\n+\n+#### Compass\n+\n+To use [Compass](http://compass-style.org/) with your ember-cli app, install\n+[ember-cli-compass-compiler](https://github.com/quaertym/ember-cli-compass-compiler) addon using NPM.\n+\n+```bash\n+ember install ember-cli-compass-compiler\n+```\n+\n+#### Stylus\n+\n+To enable [Stylus](http://learnboost.github.io/stylus/), you must first add\n+[ember-cli-stylus](https://github.com/drewcovi/ember-cli-stylus) to your NPM\n+modules:\n+\n+```bash\n+ember install ember-cli-stylus\n+```\n+\n+### CoffeeScript\n+\n+To enable [CoffeeScript](http://coffeescript.org/), you must\n+first add [ember-cli-coffeescript](https://github.com/kimroen/ember-cli-coffeescript) to your\n+NPM modules:\n+\n+```bash\n+ember install ember-cli-coffeescript\n+```\n+\n+The modified `package.json` should be checked into source control. CoffeeScript\n+can be used in your app's source and in tests, just use the `.coffee` extension\n+on any file.\n+\n+The ES6 module transpiler does not directly support CoffeeScript, but using them\n+together is simple. Use the `` ` `` character to escape out to JavaScript from\n+your `.coffee` files, and use the ES6 syntax there:\n+\n+```app/models/post.coffee\n+`import Ember from 'ember'`\n+`import User from 'appkit/models/user'`\n+\n+Post = Ember.Object.extend\n+  init: (userId) ->\n+    @set 'user', User.findById(userId)\n+\n+`export default Post`\n+```\n+\n+Note that earlier versions of the transpiler had explicit support for\n+CoffeeScript, but that support has been removed.\n+\n+### EmberScript\n+\n+To enable [EmberScript](http://emberscript.com), you must\n+first add [broccoli-ember-script](https://github.com/aradabaugh/broccoli-ember-script) to your\n+NPM modules:\n+\n+```bash\n+npm install broccoli-ember-script --save-dev\n+```\n+\n+Note that the ES6 module transpiler is not directly supported with Emberscript, to allow use of ES6 modules use the `` ` `` character to escape raw Javascript similar to the CoffeeScript example above.\n+\n+### Emblem\n+\n+For [Emblem](http://emblemjs.com/), run the following commands:\n+\n+```bash\n+ember install ember-cli-emblem-hbs-printer\n+```\n+\n+If you're using the older broccoli-emblem-compiler addon, you need to switch over the above ember-cli-emblem-hbs-printer. The older broccoli-emblem-compiler compiles directly to JS instead of Handlebars and therefore is broken on all newer version of HTMLBars.\n+\n+### Fingerprinting and CDN URLs","path":"source/getting-started/building-for-production.md","position":183,"original_position":183,"commit_id":"a86225bcb9c3af094a094e2d2eccc593877ef34d","original_commit_id":"a86225bcb9c3af094a094e2d2eccc593877ef34d","user":{"login":"locks","id":32344,"avatar_url":"https://avatars.githubusercontent.com/u/32344?v=3","gravatar_id":"","url":"https://api.github.com/users/locks","html_url":"https://github.com/locks","followers_url":"https://api.github.com/users/locks/followers","following_url":"https://api.github.com/users/locks/following{/other_user}","gists_url":"https://api.github.com/users/locks/gists{/gist_id}","starred_url":"https://api.github.com/users/locks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/locks/subscriptions","organizations_url":"https://api.github.com/users/locks/orgs","repos_url":"https://api.github.com/users/locks/repos","events_url":"https://api.github.com/users/locks/events{/privacy}","received_events_url":"https://api.github.com/users/locks/received_events","type":"User","site_admin":false},"body":"Separate page","created_at":"2015-08-03T08:10:29Z","updated_at":"2015-08-03T08:10:29Z","html_url":"https://github.com/emberjs/guides/pull/517#discussion_r36063817","pull_request_url":"https://api.github.com/repos/emberjs/guides/pulls/517","_links":{"self":{"href":"https://api.github.com/repos/emberjs/guides/pulls/comments/36063817"},"html":{"href":"https://github.com/emberjs/guides/pull/517#discussion_r36063817"},"pull_request":{"href":"https://api.github.com/repos/emberjs/guides/pulls/517"}}},"pull_request":{"url":"https://api.github.com/repos/emberjs/guides/pulls/517","id":41415406,"html_url":"https://github.com/emberjs/guides/pull/517","diff_url":"https://github.com/emberjs/guides/pull/517.diff","patch_url":"https://github.com/emberjs/guides/pull/517.patch","issue_url":"https://api.github.com/repos/emberjs/guides/issues/517","number":517,"state":"open","locked":false,"title":"Add \"Building for production\" page to \"Getting started\"","user":{"login":"joostdevries","id":3824616,"avatar_url":"https://avatars.githubusercontent.com/u/3824616?v=3","gravatar_id":"","url":"https://api.github.com/users/joostdevries","html_url":"https://github.com/joostdevries","followers_url":"https://api.github.com/users/joostdevries/followers","following_url":"https://api.github.com/users/joostdevries/following{/other_user}","gists_url":"https://api.github.com/users/joostdevries/gists{/gist_id}","starred_url":"https://api.github.com/users/joostdevries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joostdevries/subscriptions","organizations_url":"https://api.github.com/users/joostdevries/orgs","repos_url":"https://api.github.com/users/joostdevries/repos","events_url":"https://api.github.com/users/joostdevries/events{/privacy}","received_events_url":"https://api.github.com/users/joostdevries/received_events","type":"User","site_admin":false},"body":"#410 \r\n","created_at":"2015-08-02T10:01:06Z","updated_at":"2015-08-03T08:10:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"59aa4cf1b7c1859e8979d988e8d8691ee75d85c5","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/emberjs/guides/pulls/517/commits","review_comments_url":"https://api.github.com/repos/emberjs/guides/pulls/517/comments","review_comment_url":"https://api.github.com/repos/emberjs/guides/pulls/comments{/number}","comments_url":"https://api.github.com/repos/emberjs/guides/issues/517/comments","statuses_url":"https://api.github.com/repos/emberjs/guides/statuses/a86225bcb9c3af094a094e2d2eccc593877ef34d","head":{"label":"joostdevries:building-for-production","ref":"building-for-production","sha":"a86225bcb9c3af094a094e2d2eccc593877ef34d","user":{"login":"joostdevries","id":3824616,"avatar_url":"https://avatars.githubusercontent.com/u/3824616?v=3","gravatar_id":"","url":"https://api.github.com/users/joostdevries","html_url":"https://github.com/joostdevries","followers_url":"https://api.github.com/users/joostdevries/followers","following_url":"https://api.github.com/users/joostdevries/following{/other_user}","gists_url":"https://api.github.com/users/joostdevries/gists{/gist_id}","starred_url":"https://api.github.com/users/joostdevries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joostdevries/subscriptions","organizations_url":"https://api.github.com/users/joostdevries/orgs","repos_url":"https://api.github.com/users/joostdevries/repos","events_url":"https://api.github.com/users/joostdevries/events{/privacy}","received_events_url":"https://api.github.com/users/joostdevries/received_events","type":"User","site_admin":false},"repo":{"id":31166696,"name":"guides","full_name":"joostdevries/guides","owner":{"login":"joostdevries","id":3824616,"avatar_url":"https://avatars.githubusercontent.com/u/3824616?v=3","gravatar_id":"","url":"https://api.github.com/users/joostdevries","html_url":"https://github.com/joostdevries","followers_url":"https://api.github.com/users/joostdevries/followers","following_url":"https://api.github.com/users/joostdevries/following{/other_user}","gists_url":"https://api.github.com/users/joostdevries/gists{/gist_id}","starred_url":"https://api.github.com/users/joostdevries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joostdevries/subscriptions","organizations_url":"https://api.github.com/users/joostdevries/orgs","repos_url":"https://api.github.com/users/joostdevries/repos","events_url":"https://api.github.com/users/joostdevries/events{/privacy}","received_events_url":"https://api.github.com/users/joostdevries/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/joostdevries/guides","description":"The source for http://guides.emberjs.com","fork":true,"url":"https://api.github.com/repos/joostdevries/guides","forks_url":"https://api.github.com/repos/joostdevries/guides/forks","keys_url":"https://api.github.com/repos/joostdevries/guides/keys{/key_id}","collaborators_url":"https://api.github.com/repos/joostdevries/guides/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/joostdevries/guides/teams","hooks_url":"https://api.github.com/repos/joostdevries/guides/hooks","issue_events_url":"https://api.github.com/repos/joostdevries/guides/issues/events{/number}","events_url":"https://api.github.com/repos/joostdevries/guides/events","assignees_url":"https://api.github.com/repos/joostdevries/guides/assignees{/user}","branches_url":"https://api.github.com/repos/joostdevries/guides/branches{/branch}","tags_url":"https://api.github.com/repos/joostdevries/guides/tags","blobs_url":"https://api.github.com/repos/joostdevries/guides/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/joostdevries/guides/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/joostdevries/guides/git/refs{/sha}","trees_url":"https://api.github.com/repos/joostdevries/guides/git/trees{/sha}","statuses_url":"https://api.github.com/repos/joostdevries/guides/statuses/{sha}","languages_url":"https://api.github.com/repos/joostdevries/guides/languages","stargazers_url":"https://api.github.com/repos/joostdevries/guides/stargazers","contributors_url":"https://api.github.com/repos/joostdevries/guides/contributors","subscribers_url":"https://api.github.com/repos/joostdevries/guides/subscribers","subscription_url":"https://api.github.com/repos/joostdevries/guides/subscription","commits_url":"https://api.github.com/repos/joostdevries/guides/commits{/sha}","git_commits_url":"https://api.github.com/repos/joostdevries/guides/git/commits{/sha}","comments_url":"https://api.github.com/repos/joostdevries/guides/comments{/number}","issue_comment_url":"https://api.github.com/repos/joostdevries/guides/issues/comments{/number}","contents_url":"https://api.github.com/repos/joostdevries/guides/contents/{+path}","compare_url":"https://api.github.com/repos/joostdevries/guides/compare/{base}...{head}","merges_url":"https://api.github.com/repos/joostdevries/guides/merges","archive_url":"https://api.github.com/repos/joostdevries/guides/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/joostdevries/guides/downloads","issues_url":"https://api.github.com/repos/joostdevries/guides/issues{/number}","pulls_url":"https://api.github.com/repos/joostdevries/guides/pulls{/number}","milestones_url":"https://api.github.com/repos/joostdevries/guides/milestones{/number}","notifications_url":"https://api.github.com/repos/joostdevries/guides/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/joostdevries/guides/labels{/name}","releases_url":"https://api.github.com/repos/joostdevries/guides/releases{/id}","created_at":"2015-02-22T15:08:21Z","updated_at":"2015-08-02T09:50:23Z","pushed_at":"2015-08-02T11:43:48Z","git_url":"git://github.com/joostdevries/guides.git","ssh_url":"git@github.com:joostdevries/guides.git","clone_url":"https://github.com/joostdevries/guides.git","svn_url":"https://github.com/joostdevries/guides","homepage":null,"size":25030,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"emberjs:master","ref":"master","sha":"b70132b24f7331bd51f114f7813f0c9cc7ad58c3","user":{"login":"emberjs","id":1253363,"avatar_url":"https://avatars.githubusercontent.com/u/1253363?v=3","gravatar_id":"","url":"https://api.github.com/users/emberjs","html_url":"https://github.com/emberjs","followers_url":"https://api.github.com/users/emberjs/followers","following_url":"https://api.github.com/users/emberjs/following{/other_user}","gists_url":"https://api.github.com/users/emberjs/gists{/gist_id}","starred_url":"https://api.github.com/users/emberjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emberjs/subscriptions","organizations_url":"https://api.github.com/users/emberjs/orgs","repos_url":"https://api.github.com/users/emberjs/repos","events_url":"https://api.github.com/users/emberjs/events{/privacy}","received_events_url":"https://api.github.com/users/emberjs/received_events","type":"Organization","site_admin":false},"repo":{"id":22767401,"name":"guides","full_name":"emberjs/guides","owner":{"login":"emberjs","id":1253363,"avatar_url":"https://avatars.githubusercontent.com/u/1253363?v=3","gravatar_id":"","url":"https://api.github.com/users/emberjs","html_url":"https://github.com/emberjs","followers_url":"https://api.github.com/users/emberjs/followers","following_url":"https://api.github.com/users/emberjs/following{/other_user}","gists_url":"https://api.github.com/users/emberjs/gists{/gist_id}","starred_url":"https://api.github.com/users/emberjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emberjs/subscriptions","organizations_url":"https://api.github.com/users/emberjs/orgs","repos_url":"https://api.github.com/users/emberjs/repos","events_url":"https://api.github.com/users/emberjs/events{/privacy}","received_events_url":"https://api.github.com/users/emberjs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/emberjs/guides","description":"The source for http://guides.emberjs.com","fork":false,"url":"https://api.github.com/repos/emberjs/guides","forks_url":"https://api.github.com/repos/emberjs/guides/forks","keys_url":"https://api.github.com/repos/emberjs/guides/keys{/key_id}","collaborators_url":"https://api.github.com/repos/emberjs/guides/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/emberjs/guides/teams","hooks_url":"https://api.github.com/repos/emberjs/guides/hooks","issue_events_url":"https://api.github.com/repos/emberjs/guides/issues/events{/number}","events_url":"https://api.github.com/repos/emberjs/guides/events","assignees_url":"https://api.github.com/repos/emberjs/guides/assignees{/user}","branches_url":"https://api.github.com/repos/emberjs/guides/branches{/branch}","tags_url":"https://api.github.com/repos/emberjs/guides/tags","blobs_url":"https://api.github.com/repos/emberjs/guides/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/emberjs/guides/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/emberjs/guides/git/refs{/sha}","trees_url":"https://api.github.com/repos/emberjs/guides/git/trees{/sha}","statuses_url":"https://api.github.com/repos/emberjs/guides/statuses/{sha}","languages_url":"https://api.github.com/repos/emberjs/guides/languages","stargazers_url":"https://api.github.com/repos/emberjs/guides/stargazers","contributors_url":"https://api.github.com/repos/emberjs/guides/contributors","subscribers_url":"https://api.github.com/repos/emberjs/guides/subscribers","subscription_url":"https://api.github.com/repos/emberjs/guides/subscription","commits_url":"https://api.github.com/repos/emberjs/guides/commits{/sha}","git_commits_url":"https://api.github.com/repos/emberjs/guides/git/commits{/sha}","comments_url":"https://api.github.com/repos/emberjs/guides/comments{/number}","issue_comment_url":"https://api.github.com/repos/emberjs/guides/issues/comments{/number}","contents_url":"https://api.github.com/repos/emberjs/guides/contents/{+path}","compare_url":"https://api.github.com/repos/emberjs/guides/compare/{base}...{head}","merges_url":"https://api.github.com/repos/emberjs/guides/merges","archive_url":"https://api.github.com/repos/emberjs/guides/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/emberjs/guides/downloads","issues_url":"https://api.github.com/repos/emberjs/guides/issues{/number}","pulls_url":"https://api.github.com/repos/emberjs/guides/pulls{/number}","milestones_url":"https://api.github.com/repos/emberjs/guides/milestones{/number}","notifications_url":"https://api.github.com/repos/emberjs/guides/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/emberjs/guides/labels{/name}","releases_url":"https://api.github.com/repos/emberjs/guides/releases{/id}","created_at":"2014-08-08T18:25:02Z","updated_at":"2015-08-02T01:21:44Z","pushed_at":"2015-08-03T08:10:05Z","git_url":"git://github.com/emberjs/guides.git","ssh_url":"git@github.com:emberjs/guides.git","clone_url":"https://github.com/emberjs/guides.git","svn_url":"https://github.com/emberjs/guides","homepage":null,"size":28357,"stargazers_count":95,"watchers_count":95,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":284,"mirror_url":null,"open_issues_count":36,"forks":284,"open_issues":36,"watchers":95,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/emberjs/guides/pulls/517"},"html":{"href":"https://github.com/emberjs/guides/pull/517"},"issue":{"href":"https://api.github.com/repos/emberjs/guides/issues/517"},"comments":{"href":"https://api.github.com/repos/emberjs/guides/issues/517/comments"},"review_comments":{"href":"https://api.github.com/repos/emberjs/guides/pulls/517/comments"},"review_comment":{"href":"https://api.github.com/repos/emberjs/guides/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/emberjs/guides/pulls/517/commits"},"statuses":{"href":"https://api.github.com/repos/emberjs/guides/statuses/a86225bcb9c3af094a094e2d2eccc593877ef34d"}}}}