Skip to content

Instantly share code, notes, and snippets.

@billpull
Last active November 16, 2015 16:46
Show Gist options
  • Select an option

  • Save billpull/f7a07402d78c9c30eb6c to your computer and use it in GitHub Desktop.

Select an option

Save billpull/f7a07402d78c9c30eb6c to your computer and use it in GitHub Desktop.
Ember Build Script for Separating Pods
/* global require, module */
var stew = require('broccoli-stew');
var Funnel = require('broccoli-funnel');
var MergeTrees = require('broccoli-merge-trees');
var esTranspiler = require('broccoli-babel-transpiler');
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
storeConfigInMeta: false,
sassOptions: {
includePaths: [
'bower_components/bourbon/app/assets/stylesheets/',
'bower_components/neat/app/assets/stylesheets/',
'bower_components/bitters/app/assets/stylesheets/'
]
}
});
var additionalTrees = [];
var appTree = app.appAndDependencies();
if (EmberApp.env() !== "production") {
var jQuery = stew.find(appTree, "bower_components/jquery/dist/jquery.min.js");
jQuery = stew.mv(jQuery, "bower_components/jquery/dist/jquery.min.js", "assets/jquery.js");
additionalTrees = additionalTrees.concat(jQuery);
}
function extractModule(fileName, moduleName) {
var module = stew.find(appTree, 'mobile-web/'+ fileName + '.js');
moduleName = "mobile-web/" + moduleName;
module = esTranspiler(module, {
modules: "amdStrict",
moduleIds: true,
moduleId: moduleName
});
module = stew.mv(module, 'mobile-web/'+ fileName + '.js', 'assets/'+ fileName + '.js');
stew.rm(appTree, 'mobile-web/'+ fileName + '.js');
additionalTrees = additionalTrees.concat(module);
}
function extractPod(podPath) {
var srcPodPath = 'app/pods/' + podPath;
var outputFile = 'assets/' + podPath + '/';
var podFunnel = new Funnel(srcPodPath, {
destDir: outputFile
});
additionalTrees = additionalTrees.concat(podFunnel);
}
extractModule('router', 'router');
extractModule('secure-router', 'router');
extractPod('secure/login');
return MergeTrees(additionalTrees.concat(app.toTree()));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment