
The previous change did the ES6 transpile, now we add ES5. The sourcemaps are broken, but were also broken previously. We'll address that separately.
29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
var Funnel = require('broccoli-funnel');
|
|
var mergeTrees = require('broccoli-merge-trees');
|
|
var stew = require('broccoli-stew');
|
|
var TraceurCompiler = require('./tools/broccoli/traceur');
|
|
|
|
var modulesTree = new Funnel('modules', {include: ['**/**'], destDir: '/'});
|
|
|
|
// First, use Traceur to transpile original sources to ES6
|
|
var es6DevTree = new TraceurCompiler(modulesTree, '.es6', {
|
|
sourceMaps: true,
|
|
annotations: true, // parse annotations
|
|
types: true, // parse types
|
|
script: false, // parse as a module
|
|
memberVariables: true, // parse class fields
|
|
modules: 'instantiate',
|
|
typeAssertionModule: 'rtts_assert/rtts_assert',
|
|
typeAssertions: true,
|
|
outputLanguage: 'es6'
|
|
});
|
|
es6DevTree = stew.rename(es6DevTree, function(relativePath) {
|
|
return relativePath.replace(/\.(js|es6)\.map$/, '.map').replace(/\.js$/, '.es6');
|
|
});
|
|
|
|
// Call Traceur again to lower the ES6 build tree to ES5
|
|
var es5DevTree = new TraceurCompiler(es6DevTree, '.js', {modules: 'instantiate', sourceMaps: true});
|
|
es5DevTree = stew.rename(es5DevTree, '.es6.map', '.js.map');
|
|
|
|
module.exports = mergeTrees([stew.mv(es6DevTree, 'js/dev/es6'), stew.mv(es5DevTree, 'js/dev/es5')]);
|