Created
January 13, 2015 19:51
-
-
Save j15e/83275f0e91c24bf3f711 to your computer and use it in GitHub Desktop.
Revisions
-
j15e renamed this gist
Jan 13, 2015 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
j15e created this gist
Jan 13, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,275 @@ Our setup details below. Our Brocfile.js is quite custom so there might be an issue with something there. ``` app: 373 files, 1.4MB total bower_components: 1075 files, 14MB total node_modules: 39 000 files, 184MB vendor: 10 files, 193KB ``` **package.json** ``` { "name": "x", "version": "0.0.0", "private": true, "directories": { "doc": "doc", "test": "test" }, "scripts": { "start": "ember server", "install": "bower install --config.interactive=false", "build": "ember build", "build-deployment": "ember build --environment=production", "test": "ember test --environment=test" }, "repository": "https://github.com/stefanpenner/ember-cli", "engines": { "node": ">= 0.10.5" }, "author": "", "license": "MIT", "devDependencies": { "broccoli-asset-rev": "^2.0.0", "broccoli-ember-hbs-template-compiler": "^1.7.0", "ember-cli": "0.1.5", "ember-cli-content-security-policy": "0.3.0", "ember-cli-dependency-checker": "0.0.7", "ember-cli-inject-live-reload": "^1.3.0", "ember-cli-qunit": "0.1.2", "ember-data": "1.0.0-beta.11", "express": "^4.10.2", "glob": "^4.0.6", "body-parser": "^1.9.2", "bower": "^1.3.12", "broccoli-autoprefixer": "^1.1.0", "broccoli-file-creator": "^0.1.0", "broccoli-gzip": "^0.2.0", "broccoli-merge-trees": "^0.2.1", "broccoli-sass": "^0.3.3", "broccoli-static-compiler": "^0.2.1", "connect-restreamer": "^1.0.1", "dotenv": "^0.4.0", "ember-cli-pagination": "^0.5.2", "http-proxy": "^1.6.2", "originate": "0.1.5", "phantomjs": "^1.9.12", "qd-ajax": "git://github.com/hooktstudios/qd-ajax.git#master" } } ``` **bower.json** ``` { "name": "x", "dependencies": { "ember": "1.7.1", "ember-cli-shims": "stefanpenner/ember-cli-shims#0.0.3", "ember-cli-test-loader": "rjackson/ember-cli-test-loader#0.0.4", "ember-data": "v1.0.0-beta.11", "ember-easyForm": "http://builds.dockyard.com.s3.amazonaws.com/ember-easyForm/release/daily/20140207/ember-easyForm.js", "ember-flash-message": "https://raw.githubusercontent.com/ryanto/ember-flash-message/308adc8288844eb918b869d3adae6f1d1b913260/flash-message.js", "ember-i18n": "jamesarosen/ember-i18n#52a3b55ac95aa79b8810cca05588ed5638bae299", "ember-load-initializers": "stefanpenner/ember-load-initializers#0.0.2", "ember-qunit": "~0.1.8", "ember-qunit-notifications": "0.0.4", "ember-resolver": "~0.1.11", "handlebars": "~1.3.0", "html5shiv": "~3.7.2", "ic-ajax": "~2.0.1", "jquery": "^1.11.1", "jquery-file-upload": "~9.7.0", "loader.js": "stefanpenner/loader.js#1.0.1", "mediaelement": "~2.16.1", "moment": "~2.8.3", "normalize-scss": "~3.0.1", "numeral": "~1.5.3", "qunit": "~1.15.0", "rangy-official": "~1.3.0-alpha.20140827", "route-recognizer": "~0.1.1", "video.js": "~4.11.3", "videojs-vimeo": "eXon/videojs-vimeo#54f88a4de0e24ef77c1a8287462db64e2f6f6147", "videojs-youtube": "~1.2.7" }, "resolutions": { "video.js": "~4.11.3", "route-recognizer": "~0.1.1" } } ``` **Brocfile.js** ``` /* global require, module */ var glob = require('glob'); var path = require('path'); var mergeTrees = require('broccoli-merge-trees'); var compileSass = require('broccoli-sass'); var assetRev = require('broccoli-asset-rev'); var pickFiles = require('broccoli-static-compiler'); var autoprefixer = require('broccoli-autoprefixer'); var gzip = require('broccoli-gzip'); var writeFile = require('broccoli-file-creator'); var appDotEnv = require('./config/app-dotenv'); var EmberApp = require('ember-cli/lib/broccoli/ember-app'); var app = new EmberApp({ name: require('./package.json').name, // Disabled here to avoid double fingerprints fingerprint: { enabled: false }, vendorFiles: { polyfills: 'vendor/polyfills.js' }, sourcemaps: { enabled: false, extensions: [] } }); app.import('vendor/raven.js'); app.import({ development: 'bower_components/ember-data/ember-data.js', production: 'bower_components/ember-data/ember-data.prod.js' }); app.import({ development: 'bower_components/moment/min/moment-with-locales.js', production: 'bower_components/moment/min/moment-with-locales.min.js' }); app.import({ development: 'bower_components/video.js/dist/video-js/video-js.css', production: 'bower_components/video.js/dist/video-js/video-js.min.css' }) app.import({ development: 'bower_components/video.js/dist/video-js/video.dev.js', production: 'bower_components/video.js/dist/video-js/video.js' }); app.import({ development: 'bower_components/videojs-youtube/src/youtube.js', production: 'bower_components/videojs-youtube/dist/vjs.youtube.js' }) app.import({ development: 'bower_components/videojs-vimeo/src/media.vimeo.js', production: 'bower_components/videojs-vimeo/vjs.vimeo.js' }) app.import('bower_components/ember-i18n/lib/i18n.js'); app.import('bower_components/jquery-file-upload/js/vendor/jquery.ui.widget.js'); app.import('bower_components/jquery-file-upload/js/jquery.iframe-transport.js'); app.import('bower_components/jquery-file-upload/js/jquery.fileupload.js'); app.import('vendor/transloadit.js'); app.import('vendor/transloadit.fr.js'); app.import('vendor/jquery.payment.js'); app.import('vendor/jquery.number.js'); app.import('vendor/ios-drag-drop.js'); app.import('bower_components/ember-flash-message/index.js'); app.import('bower_components/ember-easyForm/index.js'); app.import('bower_components/numeral/numeral.js'); app.import({ development: 'bower_components/rangy-official/rangy-core.js', production: 'bower_components/rangy-official/rangy-core.min.js' }); // Use `app.import` to add additional libraries to the generated // output files. // // If you need to use different assets in different // environments, specify an object as the first parameter. That // object's keys should be the environment name and the values // should be the asset to use in that environment. // // If the library that you are including contains AMD or ES6 // modules that you would like to import into your application // please specify an object with the list of modules as keys // along with the exports of each module as its value. // Add clients custom styles var clientTrees = glob.sync('clients/**/styles.scss').map(function(file) { var dirname = path.dirname(file), clientName = dirname.split('/').pop(), options = {}, tree; if (app.env === 'production') options = { outputStyle: 'compressed' }; tree = compileSass([dirname], 'styles.scss', 'assets/' + clientName + '.css', options); return tree; }); var videojsAssets = pickFiles('bower_components/video.js/dist/video-js', { srcDir: '/', files: ['font/vjs.*', 'video-js.swf'], destDir: '/assets' }); var fonts = pickFiles('app/fonts', { srcDir: '/', destDir: '/assets' }); var singleVendors = pickFiles('vendor', { srcDir: '/', files: ['es5-shim.js', 'backend.js'], destDir: '/assets' }) var html5shiv = pickFiles('bower_components/html5shiv/dist', { srcDir: '/', files: ['html5shiv.js'], destDir: '/assets' }) var tree = mergeTrees(clientTrees.concat(app.toTree(), videojsAssets, fonts, singleVendors, html5shiv)); // Add fingerprints & gziping if (app.env === 'production') { var options = { generateRailsManifest: true, extensions: ['js', 'css', 'png', 'jpg', 'gif', 'eot', 'svg', 'ttf', 'woff'], replaceExtensions: ['html', 'js', 'css', 'hbs'] }; // Temporary fix for broccoli-asset-rev#18 & videojs vendor options.exclude = [ 'vjs.eot', 'vjs.svg', 'vjs.ttf', 'vjs.woff', 'video-js.swf' ]; if(appDotEnv.ASSET_HOST){ options.prepend = 'https://' + appDotEnv.ASSET_HOST + '/'; } tree = assetRev(tree, options); gzipOptions = { extensions: ['js', 'css', 'svg'], keepUncompressed: true } tree = gzip(tree, gzipOptions) } tree = autoprefixer(tree); // Robots.txt var robotsSrc = 'User-agent: *'; if(appDotEnv.ROBOTS_DISALLOW === 'true') { robotsSrc += '\nDisallow: /'; } else { robotsSrc += '\nAllow: /'; } var robots = writeFile('/robots.txt', robotsSrc); tree = mergeTrees([tree, robots]); module.exports = tree; ```