Skip to content

Instantly share code, notes, and snippets.

@opsb
Last active April 29, 2017 01:53
Show Gist options
  • Select an option

  • Save opsb/9541483 to your computer and use it in GitHub Desktop.

Select an option

Save opsb/9541483 to your computer and use it in GitHub Desktop.
/* global require, module */
var filterTemplates = require('broccoli-template');
var uglifyJavaScript = require('broccoli-uglify-js');
var compileES6 = require('broccoli-es6-concatenator');
var compileSass = require('broccoli-sass');
var pickFiles = require('broccoli-static-compiler');
var env = require('broccoli-env').getEnv();
function preprocess (tree) {
return filterTemplates(tree, {
extensions: [
'hbs',
'handlebars'
],
compileFunction: 'Ember.Handlebars.compile'
});
}
module.exports = function (broccoli) {
var app = broccoli.makeTree('app');
var tests = broccoli.makeTree('tests');
var publicFiles = broccoli.makeTree('public');
var vendor = broccoli.makeTree('vendor');
app = pickFiles(app, {
srcDir: '/',
destDir: 'app-name'
});
app = preprocess(app);
tests = pickFiles(tests, {
srcDir: '/',
destDir: 'app-name/tests'
});
tests = preprocess(tests);
var sourceTrees = [
app,
vendor
];
if (env !== 'production') {
//sourceTrees.push(tests);
}
sourceTrees = sourceTrees.concat(broccoli.bowerTrees());
var appAndDependencies = new broccoli.MergedTree(sourceTrees);
var applicationJs = compileES6(appAndDependencies, {
loaderFile: 'loader.js',
ignoredModules: [
'ember/resolver'
],
inputFiles: [
'app-name/**/*.js'
],
legacyFilesToAppend: [
'jquery.js',
'handlebars.js',
'ember.js',
'ember-data.js',
'ember-resolver.js',
'pouchdb/index.js',
'pouchdb_adapter.js'
],
wrapInEval: env !== 'production',
outputFile: '/assets/app.js'
});
var appCss = compileSass(sourceTrees, 'app_name/styles/app.css', 'assets/app.css');
if (env === 'production') {
applicationJs = uglifyJavaScript(applicationJs, {
mangle: false,
compress: false
});
}
console.log(appCss);
return [
applicationJs,
publicFiles,
appCss
];
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment