Example #1
0
EmberApp.prototype.javascript = function() {
  var applicationJs       = this.appAndDependencies();
  var legacyFilesToAppend = this.legacyFilesToAppend;

  var es6 = compileES6(applicationJs, {
    loaderFile: 'assets/ember-cli/loader.js',
    ignoredModules: Object.keys(this.importWhitelist),
    inputFiles: [
      this.name + '/**/*.js'
    ],
    wrapInEval: this.options.wrapInEval,
    outputFile: this.options.outputPaths.app.js,
  });

  var vendor = concatFiles(applicationJs, {
    inputFiles: legacyFilesToAppend.concat(['vendor/addons.js']),
    outputFile: this.options.outputPaths.vendor.js,
    separator: EOL + ';'
  });

  var vendorAndApp = mergeTrees([vendor, es6]);

  if (this.options.minifyJS.enabled === true) {
    var options = this.options.minifyJS.options || {};
    return uglifyJavaScript(vendorAndApp, options);
  } else {
    return vendorAndApp;
  }
};
Example #2
0
Perfome.prototype.javascript = function() {
  var benchmarksJs = this.benchmarks();

  var es6 = compileES6(benchmarksJs, {
    loaderFile: 'assets/perfome/loader.js',
    inputFiles: [
      this.name + '/**/*.js'
    ],
    wrapInEval: this.options.wrapInEval,
    outputFile: '/assets/' + this.name + '.js',
  });

  var implementationsJs = concatFiles(benchmarksJs, {
    inputFiles: ['implementations/**/*.js'],
    outputFile: '/assets/implementations.js',
    separator: EOL + ';'
  });

  var dependenciesJs = concatFiles(benchmarksJs, {
    inputFiles: ['dependencies/**/*.js'],
    outputFile: '/assets/dependencies.js',
    separator: EOL + ';'
  });

  return mergeTrees([dependenciesJs, implementationsJs, es6]);
};
Example #3
0
EmberApp.prototype.javascript = memoize(function() {
  var applicationJs       = this.appAndDependencies();
  var legacyFilesToAppend = this.legacyFilesToAppend;

  if (this.env !== 'production') {
    this.import('vendor/ember-qunit/dist/named-amd/main.js', {
      exports: {
        'ember-qunit': [
          'globalize',
          'moduleFor',
          'moduleForComponent',
          'moduleForModel',
          'test',
          'setResolver'
        ]
      }
    });

    this.import('vendor/ember-cli-shims/test-shims.js', {
      exports: {
        'qunit': ['default']
      }
    });
  }

  var es6 = compileES6(applicationJs, {
    loaderFile: 'assets/ember-cli/loader.js',
    ignoredModules: Object.keys(this.importWhitelist),
    inputFiles: [
      this.name + '/**/*.js'
    ],
    wrapInEval: this.options.wrapInEval,
    outputFile: '/assets/' + this.name + '.js',
  });

  var vendor = concatFiles(applicationJs, {
    inputFiles: legacyFilesToAppend,
    outputFile: '/assets/vendor.js',
    separator: '\n;'
  });

  var vendorAndApp = mergeTrees([vendor, es6]);

  if (this.env === 'production' && this.options.minifyJS.enabled === true) {
    var options = this.options.minifyJS.options || {};
    return uglifyJavaScript(vendorAndApp, options);
  } else {
    return vendorAndApp;
  }
});
Example #4
0
Addon.prototype.compileAddon = function(tree) {
  if (Object.keys(this.includedModules()).length === 0) {
    return;
  }

  var addonJs = this.addonJsFiles(tree);

  var es6Tree = compileES6(addonJs, {
    ignoredModules: Object.keys(this.app.importWhitelist),
    inputFiles: [this.name + '/**/*.js'],
    wrapInEval: this.app.options.wrapInEval,
    outputFile: '/' + this.name + '.js'
  });

  this.app.importWhitelist = assign(this.app.importWhitelist, this.includedModules());

  return es6Tree;
};
Example #5
0
EmberApp.prototype.javascript = function() {
  var applicationJs       = this.appAndDependencies();
  var legacyFilesToAppend = this.legacyFilesToAppend;
  var appOutputPath       = this.options.outputPaths.app.js;

  var modulePrefix = this.project.config(this.env).modulePrefix;
  this.importWhitelist[modulePrefix + '/config/environment'] = [
    'default'
  ];

  var es6 = compileES6(applicationJs, {
    loaderFile: 'vendor/ember-cli/loader.js',
    ignoredModules: this._isIgnoredModule.bind(this),
    inputFiles: [
      this.name + '/**/*.js'
    ],
    wrapInEval: this.options.wrapInEval,
    outputFile: appOutputPath,
  });

  es6 = concatFiles(mergeTrees([es6, this._processedEmberCLITree()]), {
    inputFiles: [appOutputPath.slice(1), 'vendor/ember-cli/app-suffix.js'],
    outputFile: appOutputPath
  });

  var inputFiles = ['vendor/ember-cli/vendor-prepend.js']
    .concat(legacyFilesToAppend)
    .concat('vendor/addons.js');

  var vendor = concatFiles(applicationJs, {
    inputFiles: inputFiles,
    outputFile: this.options.outputPaths.vendor.js,
    separator: EOL + ';'
  });

  var vendorAndApp = mergeTrees([vendor, es6]);

  if (this.options.minifyJS.enabled === true) {
    var options = this.options.minifyJS.options || {};
    return uglifyJavaScript(vendorAndApp, options);
  } else {
    return vendorAndApp;
  }
};
Example #6
0
EmberApp.prototype.javascript = memoize(function() {
  var applicationJs = preprocessJs(this.appAndDependencies(), '/', this.name);

  var es6 = compileES6(applicationJs, {
    loaderFile: 'loader/loader.js',
    ignoredModules: this.ignoredModules,
    inputFiles: [
      this.name + '/**/*.js'
    ],
    wrapInEval: this.wrapInEval,
    outputFile: '/assets/app.js',
    legacyFilesToAppend: this.legacyFilesToAppend
  });

  if (this.env === 'production') {
    return uglifyJavaScript(es6);
  } else {
    return es6;
  }
});
Example #7
0
EmberApp.prototype.javascript = memoize(function() {
  var applicationJs       = this.appAndDependencies();
  var legacyFilesToAppend = this.legacyFilesToAppend;

  if (this.env !== 'production') {
    this.import('vendor/ember-qunit/dist/named-amd/main.js', {
      'ember-qunit': [
        'globalize',
        'moduleFor',
        'moduleForComponent',
        'moduleForModel',
        'test',
        'setResolver'
      ]
    });

    this.import('vendor/ember-cli-shims/test-shims.js', {
      'qunit': ['default']
    });
  }

  var es6 = compileES6(applicationJs, {
    loaderFile: this.options.loader,
    ignoredModules: Object.keys(this.importWhitelist),
    inputFiles: [
      this.name + '/**/*.js'
    ],
    wrapInEval: this.options.wrapInEval,
    outputFile: '/assets/' + this.name + '.js',
    legacyFilesToAppend: legacyFilesToAppend
  });

  if (this.env === 'production') {
    return uglifyJavaScript(es6, {
      mangle: true,
      compress: true
    });
  } else {
    return es6;
  }
});
Example #8
0
module.exports = function(tree, moduleName, outputFile) {
  var pickFiles = require('broccoli-static-compiler');
  var mergeTrees = require('broccoli-merge-trees');
  var compileES6 = require('broccoli-es6-concatenator');
  var quickTemp = require('quick-temp');
  var fixturify = require('fixturify');

  var fixtures = pickFiles(tree, {
    srcDir: '/',
    files: ['**/*.js'],
    destDir: '/' + moduleName
  });

  quickTemp.makeOrRemake(this, 'loaderDir');

  fixturify.writeSync(this.loaderDir, {
    '_loader.js': '// Hack for  https://github.com/joliss/broccoli-es6-concatenator/issues/9'
  });

  var loader = pickFiles(this.loaderDir, {
    srcDir: '/',
    files: ['_loader.js'],
    destDir: '/' + moduleName
  });

  fixturesJs = compileES6(mergeTrees([fixtures, loader]), {
    loaderFile: moduleName + '/_loader.js',
    ignoreModules: [],
    inputFiles: ['**/*.js'],
    legacyFilesToAppend: [],
    wrapInEval: true,
    outputFile: outputFile
  });

  return fixturesJs;
};
var templateTree = templateCompiler('../app/templates', { module: true });
templateTree = pickFiles(templateTree, {srcDir: '/', destDir: 'app/templates'});

var addonTree = pickFiles('../addon', {srcDir: '/', destDir: name});
var precompiled = mergeTrees([addonTree, appTree, templateTree]);
var registrations = registry(pickFiles(precompiled, {srcDir: '/app', destDir: '/'}));
var bower = pickFiles('../bower_components', {srcDir: '/loader.js', destDir: '/'});
var glue = new Funnel('.', { include: [/^glue\.js$/] });

var jsTree = mergeTrees([glue, mergeTrees([precompiled, registrations, bower])]);

var compiled = compileES6(jsTree, {
  wrapInEval: false,
  loaderFile: 'loader.js',
  inputFiles: [ name + '/index.js', 'app/**/*.js'],
  ignoredModules: ['ember', name],
  outputFile: '/' + name + '-' + version + '.js',
  legacyFilesToAppend: ['registry-output.js', 'glue.js']
});
compiled = wrap(compiled);

var css = new Funnel('../vendor', {
  include: [/\.css$/],
  getDestinationPath: function(relativePath) {
    var cssFile = name + '.css';
    if (relativePath === cssFile) {
      return '/' + name + '-' + version + '.css';
    }
    return relativePath;
  }
});
module.exports = function (broccoli) {
  var filterCoffeeScript = require('broccoli-coffee')
  var filterTemplates = require('broccoli-template')
  var uglifyJavaScript = require('broccoli-uglify-js')
  var compileES6 = require('broccoli-es6-concatenator')
  var pickFiles = require('broccoli-static-compiler')
  var env = require('broccoli-env').getEnv()

  function preprocess (tree) {
    tree = filterTemplates(tree, {
      extensions: ['hbs', 'handlebars'],
      compileFunction: 'Ember.Handlebars.compile'
    })
    tree = filterCoffeeScript(tree, {
      bare: true
    })
    return tree
  }

  var app = broccoli.makeTree('app')
  app = pickFiles(app, {
    srcDir: '/',
    destDir: 'appkit' // move under appkit namespace
  })
  app = preprocess(app)

  var tests = broccoli.makeTree('tests')
  tests = pickFiles(tests, {
    srcDir: '/',
    destDir: 'appkit/tests'
  })
  tests = preprocess(tests)

  var vendor = broccoli.makeTree('vendor')

  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: [
      'resolver'
    ],
    inputFiles: [
      'appkit/**/*.js'
    ],
    legacyFilesToAppend: [
      'jquery.js',
      'handlebars.js',
      'ember.js',
      'ember-data.js',
      'ember-resolver.js'
    ],
    wrapInEval: env !== 'production',
    outputFile: '/assets/app.js'
  })

  if (env === 'production') {
    applicationJs = uglifyJavaScript(applicationJs, {
      // mangle: false,
      // compress: false
    })
  }

  var publicFiles = broccoli.makeTree('public')

  return [applicationJs, publicFiles]
}
Example #11
0
module.exports = function (broccoli) {
  var app = broccoli.makeTree('app');
  var tests = broccoli.makeTree('tests');
  var publicFiles = broccoli.makeTree('public');
  var vendor = broccoli.makeTree('vendor');
  var config = broccoli.makeTree('config');
  var styles;

  app = pickFiles(app, {
    srcDir: '/',
    destDir: '<%= modulePrefix %>/'
  });

  app = preprocessTemplates(app);

  config = pickFiles(config, {
    srcDir: '/',
    files: ['environment.*', 'environments/' + env + '.*'],
    destDir: '<%= modulePrefix %>/config'
  });

  tests = pickFiles(tests, {
    srcDir: '/',
    destDir: '<%= modulePrefix %>/tests'
  });

  tests = preprocessTemplates(tests);

  var sourceTrees = [
    app,
    config,
    vendor
  ];

  if (env !== 'production') {
    //sourceTrees.push(tests);
  }

  sourceTrees = sourceTrees.concat(broccoli.bowerTrees());

  var appAndDependencies = new broccoli.MergedTree(sourceTrees);

  appAndDependencies = preprocessJs(appAndDependencies, '/', 'emblem-app');

  var applicationJs = compileES6(appAndDependencies, {
    loaderFile: 'loader.js',
    ignoredModules: [
      'ember/resolver'
    ],
    inputFiles: [
      '<%= modulePrefix %>/**/*.js'
    ],
    legacyFilesToAppend: [
      '<%= modulePrefix %>/config/environment.js',
      '<%= modulePrefix %>/config/environments/' + env + '.js',
      'jquery.js',
      'handlebars.js',
      'ember.js',
      'ic-ajax/main.js',
      'ember-data.js',
      'ember-resolver.js'
    ],

    wrapInEval: env !== 'production',
    outputFile: '/assets/app.js'
  });

  styles = preprocessCss(sourceTrees, '<%= modulePrefix %>/styles', '/assets');

  if (env === 'production') {
    applicationJs = uglifyJavaScript(applicationJs, {
      mangle: false,
      compress: false
    });
  }

  return [
    applicationJs,
    publicFiles,
    styles
  ];
};
Example #12
0
var compileES6 = require('broccoli-es6-concatenator');
var mergeTrees = require('broccoli-merge-trees');
var uglifyJs = require('broccoli-uglify-js');
var moveFile = require('broccoli-file-mover');
var concat = require('broccoli-concat');
var pickFiles = require('broccoli-static-compiler');

var lib = compileES6(mergeTrees(['lib', 'bower_components/loader.js']), {
  loaderFile: 'loader.js',
  ignoredModules: ['dom-ruler', 'dom-ruler/text', 'dom-ruler/utils'],
  inputFiles: [
    '**/*.js'
  ],
  wrapInEval: false,
  outputFile: '/truncate-text.js'
});

var amd = compileES6('lib', {
  inputFiles: [
    '**/*.js'
  ],
  ignoredModules: ['dom-ruler', 'dom-ruler/text', 'dom-ruler/utils'],
  wrapInEval: false,
  outputFile: '/truncate-text.amd.js'
});

var vendorAmd = pickFiles('bower_components/dom-ruler/dist', {
  srcDir: '/',
  files: ['dom-ruler.amd.js'],
  destDir: '/'
});
Example #13
0
module.exports = function (broccoli) {
  var app = 'app';
  var tests = 'tests';
  var publicFiles = 'public';
  var vendor = 'vendor';
  var config = 'config';
  var styles;
  var qunit;
  var testsIndex;

  app = pickFiles(app, {
    srcDir: '/',
    destDir: 'autopilot/'
  });

  app = preprocessTemplates(app);

  config = pickFiles(config, {
    srcDir: '/',
    files: [
      'environment.*',
      'environments/' + env + '.*'
    ],
    destDir: 'autopilot/config'
  });

  testsIndex = pickFiles(tests, {
    srcDir: '/',
    files: ['index.html'],
    destDir: '/tests'
  });

  tests = pickFiles(tests, {
    srcDir: '/',
    destDir: 'autopilot/tests'
  });

  qunit = pickFiles(vendor, {
    srcDir: '/qunit/qunit',
    files: ['qunit.css'],
    destDir: '/assets/'
  });

  tests = preprocessTemplates(tests);

  var sourceTrees = [
    app,
    config,
    vendor
  ];

  var legacyFilesToAppend = [
    'autopilot/config/environment.js',
    'autopilot/config/environments/' + env + '.js',
    'jquery.js',
    'handlebars.js',
    'ember.js',
    'ic-ajax/main.js',
    'ember-data.js',
    'ember-resolver.js'
  ];

  if (env !== 'production') {
    legacyFilesToAppend.push(
      'ember-shim.js',
      'qunit/qunit/qunit.js',
      'qunit-shim.js',
      'ember-qunit/dist/named-amd/main.js'
    );

    sourceTrees.push(tests);
  }

  sourceTrees = sourceTrees.concat(broccoli.bowerTrees());

  var appAndDependencies = new broccoli.MergedTree(sourceTrees);

  appAndDependencies = preprocessJs(appAndDependencies, '/', 'autopilot');

  var applicationJs = compileES6(appAndDependencies, {
    loaderFile: 'loader.js',
    ignoredModules: [
      'ember/resolver',
      'ember-qunit'
    ],
    inputFiles: [
      'autopilot/**/*.js'
    ],
    legacyFilesToAppend: legacyFilesToAppend,

    wrapInEval: env !== 'production',
    outputFile: '/assets/app.js'
  });

  styles = preprocessCss(sourceTrees, 'autopilot/styles', '/assets');

  if (env === 'production') {
    applicationJs = uglifyJavaScript(applicationJs, {
      mangle: false,
      compress: false
    });
  }

  var outputTrees = [
    applicationJs,
    publicFiles,
    styles
  ];

  if (env !== 'production') {
    outputTrees.push(qunit, testsIndex);
  }

  return outputTrees;
};
// merge array into tree
var appAndDependencies = new mergeTrees(sourceTrees, { overwrite: true })

// Transpile ES6 modules and concatenate them,
// recursively including modules referenced by import statements.
var appJs = compileES6(appAndDependencies, {
  // Prepend contents of vendor/loader.js
  loaderFile: 'loader.js',
  ignoredModules: [
    'ember/resolver'
  ],
  inputFiles: [
    'appkit/**/*.js'
  ],
  legacyFilesToAppend: [
    'jquery.js',
    'handlebars.js',
    'ember.js',
    'ember-data.js',
    'ember-resolver.js'
  ],
  wrapInEval: env !== 'production',
  outputFile: '/assets/app.js'
})

// compile sass
var appCss = compileSass(sourceTrees, 'appkit/app.scss', 'assets/app.css')

if (env === 'production') {
  // minify js
Example #15
0
var env = require('broccoli-env').getEnv();
var compileES6 = require('broccoli-es6-concatenator');
var findBowerTrees = require('broccoli-bower');

var sourceTrees = [];

if (env === 'production') {

  // Build file
  sourceTrees = sourceTrees.concat('vendor')
  var js = new mergeTrees(sourceTrees, { overwrite: true })

  js = compileES6('lib', {
    loaderFile: '../vendor/no_loader.js',
    inputFiles: [
      '**/*.js'
    ],
    wrapInEval: false,
    outputFile: '/ember-sync.js'
  });

  sourceTrees = sourceTrees.concat(js);

} else if (env === 'development') {

  var lib = pickFiles('lib', {
    srcDir: '/',
    destDir: '/lib'
  });

  sourceTrees = sourceTrees.concat(lib)
  sourceTrees = sourceTrees.concat(findBowerTrees())
Example #16
0
app = esnextify(app);

var styles = pickFiles('app/styles', {
  srcDir: '/',
  destDir: dest
});

var vendor = 'vendor';

var sourceTrees = [app, styles, vendor];
sourceTrees = sourceTrees.concat(findBowerTrees());

var appAndDependencies = new mergeTrees(sourceTrees, { overwrite: true });

var appJs = compileES6(appAndDependencies, {
  loaderFile: 'loader.js',
  inputFiles: [
    dest + '**/*.js'
  ],
  legacyFilesToAppend: [
    'react/react-with-addons.js',
    'bilby/bilby.js'
  ],
  wrapInEval: false,
  outputFile: '/' + dest + '/application.js'
});

var appCss = sassify(sourceTrees, '/' + dest + '/main.scss', dest + '/styles/application.css');

module.exports = mergeTrees([index, appJs, appCss], {overwrite: true});
Example #17
0
var lib = new Funnel('lib', {
  srcDir: '/',
  include: [/.js$/],
  destDir: '/'
});

var tests = new Funnel('tests', {
  srcDir: '/',
  include: [/test-support\/resolver.js$/, /.js$/],
  destDir: '/tests'
});

var main = mergeTrees([deps, lib]);
main = compileES6(main, {
  inputFiles: ['**/*.js'],
  ignoredModules: ['ember'],
  outputFile: '/ember-mocha.amd.js',
  wrapInEval: false
});

var generatedBowerConfig = new Funnel('build-support', {
  srcDir: '/',
  destDir: '/',
  files: ['bower.json']
});
generatedBowerConfig = replace(generatedBowerConfig, {
  files: ['bower.json'],
  pattern: {
    match: /VERSION_PLACEHOLDER/,
    replacement: function() {
      return gitInfo().abbreviatedSha;
    }
var compileEs6ToEs5 = require('broccoli-es6-concatenator');
var compileSass = require('broccoli-sass');
var mergeTrees = require('broccoli-merge-trees');

// note: all paths are relative to the dir that the packages.json file is in

// inputFiles is in js dir, outputFile is in serve's tmp dir or build's dist dir
var js = compileEs6ToEs5('js', {
    outputFile: '/app.js', // normally 'app.js' but plugin wants absolute path
    loaderFile: 'lib/loader.js', // at top of app.js is require() definition
    inputFiles: [
        '**/*.js'
    ],
    ignoredModules: ['lib/loader'], // already in loaderFile above
    wrapInEval: false
});

// 1st argument is array of inputTrees - compileSass expects an array of input
// trees, hence the array brackets
// 2nd argument is the main Sass file in any of the first argument's trees
// 3rd argument is in serve's tmp dir or build's dist dir
var css = compileSass(['sass'], 'main.scss', 'app.css');

// when a tree is a string, it means a tree in this string's dir
// in this case, a tree is made of the 'html' dir
var html = 'html';

//module.exports = mergeTrees([js, vendor, css, html]);
module.exports = mergeTrees([js, css, html]);
Example #19
0
var uglifyJavaScript = require('broccoli-uglify-js');
var pickFiles = require('broccoli-static-compiler');
var mergeTrees = require('broccoli-merge-trees');
var env = require('broccoli-env').getEnv();
var compileES6 = require('broccoli-es6-concatenator');
var findBowerTrees = require('broccoli-bower');

var sourceTrees = [];

if (env === 'production') {

  // Build file
  var js = compileES6('src', {
    loaderFile: '../vendor/no_loader.js',
    inputFiles: [
      '**/*.js'
    ],
    wrapInEval: false,
    outputFile: '/ember-json-api.js'
  });

  var jsMinified = compileES6('src', {
    loaderFile: '../vendor/no_loader.js',
    inputFiles: [
      '**/*.js'
    ],
    wrapInEval: false,
    outputFile: '/ember-json-api.min.js'
  });

  var ugly = uglifyJavaScript(jsMinified, {
    mangle: true,
Example #20
0
//   - Generate global exports, like Ember.Table.EmberTableComponent
//   - Register all templates on Ember.TEMPLATES
//   - Register views and components with the container so they can be looked up
// Output goes into globals-output.js
var globalExports = globals(pickFiles(sourceTree, {srcDir: '/ember-table', destDir: '/'}));

// Require.js module loader
var loader = pickFiles('bower_components', {srcDir: '/loader.js', destDir: '/'});

var jsTree = mergeTrees([sourceTree, globalExports, loader]);

// Transpile modules
var compiled = compileES6(jsTree, {
  wrapInEval: false,
  loaderFile: 'loader.js',
  inputFiles: ['ember-table/**/*.js'],
  ignoredModules: ['ember'],
  outputFile: '/ember-table.js',
  legacyFilesToAppend: ['globals-output.js']
});

// Wrap in a function which is executed
compiled = wrap(compiled);

// Compile LESS
var lessTree = pickFiles('addon/styles', { srcDir: '/', destDir: '/' });
var lessMain = 'addon.less';
var lessOutput = 'ember-table.css';
lessTree = less(lessTree, lessMain, lessOutput);

module.exports = mergeTrees([es3Safe(compiled), lessTree]);
Example #21
0
  files: ['loader.js'],
  srcDir: '/loader.js'
});

var glueTree = pickFiles('.', {
  destDir: '/',
  files: ['glue.js'],
  srcDir: '/'
});

var jsTree = mergeTrees([addonTree, glueTree, loaderTree, registryTree]);

var es6Tree = compileES6(jsTree, {
  ignoredModules: ['codemirror', 'ember'],
  inputFiles: [packageInfo.name + '/**/*.js'],
  legacyFilesToAppend: ['registry.js', 'glue.js'],
  loaderFile: 'loader.js',
  outputFile: '/' + packageInfo.name + '.js',
  wrapInEval: false
});
es6Tree = es3Safe(es6Tree);
es6Tree = iife(es6Tree);

var packagingTree = pickFiles('package_manager_files', {
  destDir: '/',
  srcDir: '/'
});

var distTree = mergeTrees([es6Tree, packagingTree]);
distTree = replace(distTree, {
  files: ['**/*.js', '**/*.json'],
  patterns: [
Example #22
0
  overwrite: true
} );

// Transpile ES6 modules and concatenate them,
// recursively including modules referenced by import statements.
var appJs = compileES6( appAndDependencies, {
  // Prepend contents of vendor/loader.js
  loaderFile: "loader.js",
  ignoredModules: [
    "ember/resolver"
  ],
  inputFiles: [
    "appkit/**/*.js"
  ],
  legacyFilesToAppend: [
    "Three.js",
    "Detector.js",
    "Stats.js",
    "OrbitControls.js",
    "THREEx.KeyboardState.js",
    "THREEx.FullScreen.js",
    "THREEx.WindowResize.js"
  ],
  wrapInEval: env !== "production",
  outputFile: "/assets/app.js"
} );

// compile sass
var appCss = compileSass( sourceTrees, "appkit/app.scss", "assets/app.css" );

if (env === "production") {
var dependenciesJs = pickFiles("bower_components", {
  "srcDir": "/",
  "destDir": "/",
  "files": [
    "ember/ember.js",
    "handlebars/handlebars.js",
    "jquery/jquery.js"
  ]
});

dependenciesJs = flattenTree(dependenciesJs);

var jsFiles = mergeTrees([dependenciesJs, appJs]);

jsFiles = compileES6(jsFiles, {
  loaderFile: "app/loader.js",
  inputFiles: [
    "app/**/*.js" // WTF BROCCOLI
  ],
  legacyFilesToAppend: [
    'jquery.js',
    'handlebars.js',
    'ember.js'
  ],
  wrapInEval: true,
  outputFile: "/index.js"
});

module.exports = mergeTrees([staticFiles, jsFiles]);
Example #24
0
}
sourceTrees = sourceTrees.concat(findBowerTrees());

var appAndDependencies = new mergeTrees(sourceTrees, { overwrite: true });

var appJs = compileES6(appAndDependencies, {
  loaderFile: 'loader.js',
  ignoredModules: [
    'ember/resolver'
  ],
  inputFiles: [
    'appkit/**/*.js'
  ],
  legacyFilesToAppend: [
    'jquery.js',
    'handlebars.js',
    'ember.js',
    'ember-data.js',
    'ember-resolver.js',
    'vendor/d3.min.js', // include in app.js
    'vendor/showdown.js',
    'vendor/moment.min.js',
    'vendor/dropbox-datastores-1.0.1.js'
  ],
  wrapInEval: false, //env !== 'production',
  outputFile: '/assets/app.js'
});

var appCss = compileSass(sourceTrees, 'appkit/app.scss', 'assets/app.css');

// if (env === 'production') {
  // appJs = uglifyJavaScript(appJs, {
Example #25
0
module.exports = function (broccoli) {

  var prefix = '<%= modulePrefix %>';
  var rootURL = '/';

  // index.html

  var indexHTML = pickFiles('app', {
    srcDir: '/',
    files: ['index.html'],
    destDir: '/'
  });

  indexHTML = replace(indexHTML, {
    files: ['index.html'],
    patterns: [{ match: /\{\{ENV\}\}/g, replacement: getEnvJSON.bind(null, env)}]
  });

  // sourceTrees, appAndDependencies for CSS and JavaScript

  var app = pickFiles('app', {
    srcDir: '/',
    destDir: prefix
  });

  app = preprocessTemplates(app);

  var config = pickFiles('config', { // Don't pick anything, just watch config folder
    srcDir: '/',
    files: [],
    destDir: '/'
  });

  var sourceTrees = [app, config, 'vendor'].concat(findBowerTrees());
  var appAndDependencies = mergeTrees(sourceTrees, { overwrite: true });

  // JavaScript

  var legacyFilesToAppend = [
    'jquery.js',
    'handlebars.js',
    'ember.js',
    'ic-ajax/dist/named-amd/main.js',
    'ember-data.js',
    'ember-resolver.js',
    'ember-shim.js'
  ];

  var applicationJs = preprocessJs(appAndDependencies, '/', prefix);

  applicationJs = compileES6(applicationJs, {
    loaderFile: 'loader/loader.js',
    ignoredModules: [
      'ember/resolver',
      'ic-ajax'
    ],
    inputFiles: [
      prefix + '/**/*.js'
    ],
    legacyFilesToAppend: legacyFilesToAppend,
    wrapInEval: env !== 'production',
    outputFile: '/assets/app.js'
  });

  if (env === 'production') {
    applicationJs = uglifyJavaScript(applicationJs, {
      mangle: false,
      compress: false
    });
  }

  // Styles

  var styles = preprocessCss(appAndDependencies, prefix + '/styles', '/assets');

  // Ouput

  var outputTrees = [
    indexHTML,
    applicationJs,
    'public',
    styles
  ];

  // Testing

  if (env !== 'production') {

    var tests = pickFiles('tests', {
      srcDir: '/',
      destDir: prefix + '/tests'
    });

    var testsIndexHTML = pickFiles('tests', {
      srcDir: '/',
      files: ['index.html'],
      destDir: '/tests'
    });

    var qunitStyles = pickFiles('vendor', {
      srcDir: '/qunit/qunit',
      files: ['qunit.css'],
      destDir: '/assets/'
    });

    testsIndexHTML = replace(testsIndexHTML, {
      files: ['tests/index.html'],
      patterns: [{ match: /\{\{ENV\}\}/g, replacement: getEnvJSON.bind(null, env)}]
    });

    tests = preprocessTemplates(tests);

    sourceTrees = [tests, 'vendor'].concat(findBowerTrees());
    appAndDependencies = mergeTrees(sourceTrees, { overwrite: true });

    var testsJs = preprocessJs(appAndDependencies, '/', prefix);

    var validatedJs = validateES6(mergeTrees([app, tests]), {
      whitelist: {
        'ember/resolver': ['default'],
        'ember-qunit': [
          'globalize',
          'moduleFor',
          'moduleForComponent',
          'moduleForModel',
          'test',
          'setResolver'
        ]
      }
    });

    var legacyTestFiles = [
      'qunit/qunit/qunit.js',
      'qunit-shim.js',
      'ember-qunit/dist/named-amd/main.js'
    ];

    legacyFilesToAppend = legacyFilesToAppend.concat(legacyTestFiles);

    testsJs = compileES6(testsJs, {
      // Temporary workaround for
      // https://github.com/joliss/broccoli-es6-concatenator/issues/9
      loaderFile: '_loader.js',
      ignoredModules: [
        'ember/resolver',
        'ember-qunit'
      ],
      inputFiles: [
        prefix + '/**/*.js'
      ],
      legacyFilesToAppend: legacyFilesToAppend,

      wrapInEval: true,
      outputFile: '/assets/tests.js'
    });

    var testsTrees = [qunitStyles, testsIndexHTML, validatedJs, testsJs];
    outputTrees = outputTrees.concat(testsTrees);
  }

  return mergeTrees(outputTrees, { overwrite: true });
};
Example #26
0
var sourceTrees = [app, vendor];
var  bowerTrees = findBowerTrees();
sourceTrees = sourceTrees.concat(bowerTrees);

var appAndDependencies = new mergeTrees(sourceTrees, {overwrite: true});

var appJs = generateES6Modules(appAndDependencies, {
	loaderFile: 'loader.js',
	ignoredModules: [
		'ember/resolver'
	],
	legacyFilesToAppend: [
		'jquery.js',
		'handlebars.js',
		'ember.js',
		'ember-data.js',
		'ember-resolver.js',
		'holder.js'
	],
	wrapInEval: env !== 'production',
	inputFiles: ['appkit/**/*.js'],
	outputFile: '/assets/app.js'
});

var appSass = pickFiles(appAndDependencies, {
	srcDir: '/',
	files: ['**/*.scss'],
	destDir:'/'
});
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: 'testing-ember-nested-resources'
  });

  app = preprocess(app);

  tests = pickFiles(tests, {
    srcDir: '/',
    destDir: 'testing-ember-nested-resources/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: [
      'testing-ember-nested-resources/**/*.js'
    ],
    legacyFilesToAppend: [
      'jquery.js',
      'handlebars.js',
      'ember.js',
      'ember-data.js',
      'ember-resolver.js'
    ],

    wrapInEval: env !== 'production',
    outputFile: '/assets/app.js'
  });

  if (env === 'production') {
    applicationJs = uglifyJavaScript(applicationJs, {
      mangle: false,
      compress: false
    });
  }

  return [
    applicationJs,
    publicFiles
  ];
};
Example #28
0
var compileES6 = require('broccoli-es6-concatenator');
var mergeTrees = require('broccoli-merge-trees');
var uglifyJs = require('broccoli-uglify-js');
var moveFile = require('broccoli-file-mover');

var lib = compileES6(mergeTrees(['lib', 'bower_components/loader.js']), {
  loaderFile: 'loader.js',
  inputFiles: [
    '**/*.js'
  ],
  wrapInEval: false,
  outputFile: '/dom-ruler.js'
});

var amd = compileES6('lib', {
  inputFiles: [
    '**/*.js'
  ],
  wrapInEval: false,
  outputFile: '/dom-ruler.amd.js'
});

var uglify = function (tree, filename) {
  var minFilename = filename.split('.');
  minFilename.pop();
  minFilename.push('min', 'js');
  return uglifyJs(moveFile(tree, {
    srcFile: '/' + filename,
    destFile: '/' + minFilename.join('.')
  }));
}
Example #29
0
module.exports = function (broccoli) {

  var prefix = '<%= modulePrefix %>';
  var rootURL = '/';

  // Index HTML Files

  var indexHTML = pickFiles('app', {
    srcDir: '/',
    files: ['index.html'],
    destDir: '/'
  });

  indexHTML = replace(indexHTML, {
    files: ['index.html'],
    patterns: [{ match: /\{\{ENV\}\}/g, replacement: getEnvJSON.bind(null, env)}]
  });

  var indexHTMLs = [indexHTML];

  if (env !== 'production') {
    var testsIndexHTML = pickFiles('tests', {
      srcDir: '/',
      files: ['index.html'],
      destDir: '/tests'
    });

    testsIndexHTML = replace(testsIndexHTML, {
      files: ['tests/index.html'],
      patterns: [{ match: /\{\{ENV\}\}/g, replacement: getEnvJSON.bind(null, env)}]
    });

    indexHTMLs.push(testsIndexHTML);
  }

  // Source Files

  var app = pickFiles('app', {
    srcDir: '/',
    destDir: prefix
  });

  var config = pickFiles('config', { // Don't pick anything, just watch config folder
    srcDir: '/',
    files: [],
    destDir: '/'
  });

  var sourceFiles = [preprocessTemplates(app), config, 'vendor'];

  if (env !== 'production') {
    var tests = pickFiles('tests', {
      srcDir: '/',
      destDir: prefix + '/tests'
    });

    sourceFiles.push(preprocessTemplates(tests))
  }

  sourceFiles = sourceFiles.concat(broccoli.bowerTrees());
  var appAndDependencies = mergeTrees(sourceFiles, { overwrite: true });

  // Styles

  var styles = [preprocessCss(appAndDependencies, prefix + '/styles', '/assets')];

  if (env !== 'production') {
    var qunitStyles = pickFiles('vendor', {
      srcDir: '/qunit/qunit',
      files: ['qunit.css'],
      destDir: '/assets/'
    });

    styles.push(qunitStyles);
  }

  // JavaScripts

  var scripts = preprocessJs(appAndDependencies, '/', prefix);

  var legacyFilesToAppend = [
    'jquery.js',
    'handlebars.js',
    'ember.js',
    'ic-ajax/dist/named-amd/main.js',
    'ember-data.js',
    'ember-resolver.js',
    'ember-shim.js'
  ];

  var ignoredModules = [
    'ember/resolver',
    'ic-ajax'
  ];

  if (env !== 'production') {
    legacyFilesToAppend = legacyFilesToAppend.concat([
      'qunit/qunit/qunit.js',
      'qunit-shim.js',
      'ember-qunit/dist/named-amd/main.js'
    ]);

    ignoredModules.push('ember-qunit');
  }

  scripts = compileES6(scripts, {
    loaderFile: 'loader/loader.js',
    ignoredModules: ignoredModules,
    inputFiles: [
      prefix + '/**/*.js'
    ],
    legacyFilesToAppend: legacyFilesToAppend,
    wrapInEval: env !== 'production',
    outputFile: '/assets/app.js'
  });

  if (env === 'production') {
    scripts = uglifyJavaScript(scripts, {
      mangle: false,
      compress: false
    });
  }

  var trees = indexHTMLs.concat(sourceFiles, 'public', styles, scripts);
  return mergeTrees(trees, { overwrite: true });
};
var lib = pickFiles('lib', {
  srcDir: '/',
  files: ['**/*.js'],
  destDir: '/'
});

var tests = pickFiles('tests', {
  srcDir: '/',
  files: ['test-support/*.js', '*.js'],
  destDir: '/tests'
});

var main = mergeTrees([loader, klassy, lib, tests]);
main = compileES6(main, {
  loaderFile: '/loader.js',
  inputFiles: ['**/*.js'],
  ignoredModules: ['ember'],
  outputFile: '/assets/ember-test-helpers-tests.amd.js'
});

// --- Select and concat vendor / support files ---

var vendor = concat('bower_components', {
  inputFiles: ['jquery/dist/jquery.js',
               'handlebars/handlebars.js',
               'ember/ember.js',
               'ember-data/ember-data.js'],
  outputFile: '/assets/vendor.js'
});

var qunit = pickFiles('bower_components', {
  srcDir: '/qunit/qunit',