chore(build): Add traceur transpiler for broccoli.
This exactly reproduces the output tree from one of the gulp tasks, which is now removed. Next step is to migrate another sibling task to broccoli.
This commit is contained in:
57
gulpfile.js
57
gulpfile.js
@ -1,3 +1,7 @@
|
||||
var broccoli = require('broccoli');
|
||||
var copyDereferenceSync = require('copy-dereference').sync;
|
||||
var fse = require('fs-extra');
|
||||
|
||||
var format = require('gulp-clang-format');
|
||||
var gulp = require('gulp');
|
||||
var gulpPlugins = require('gulp-load-plugins')();
|
||||
@ -278,6 +282,47 @@ var CONFIG = {
|
||||
};
|
||||
CONFIG.test.js.cjs = CONFIG.test.js.cjs.map(function(s) {return CONFIG.dest.js.cjs + s});
|
||||
|
||||
// ------------
|
||||
// integration point to run broccoli build
|
||||
|
||||
var broccoliExecuted = false;
|
||||
|
||||
gulp.task('broccoli', function() {
|
||||
if (broccoliExecuted) {
|
||||
throw new Error('The broccoli task can be called only once!');
|
||||
}
|
||||
broccoliExecuted = true;
|
||||
|
||||
var broccoliDist = path.join('dist', 'js', 'dev', 'es6');
|
||||
fse.removeSync(broccoliDist);
|
||||
fse.mkdirsSync(path.join('dist', 'js', 'dev'));
|
||||
|
||||
var tree = broccoli.loadBrocfile();
|
||||
var builder = new broccoli.Builder(tree);
|
||||
return builder.build()
|
||||
.then(function (hash) {
|
||||
var dir = hash.directory;
|
||||
try {
|
||||
copyDereferenceSync(path.join(dir, 'js', 'dev', 'es6'), broccoliDist);
|
||||
} catch (err) {
|
||||
if (err.code === 'EEXIST') err.message += ' (we cannot build into an existing directory)';
|
||||
throw err;
|
||||
}
|
||||
})
|
||||
.finally(function () {
|
||||
builder.cleanup();
|
||||
})
|
||||
.catch(function (err) {
|
||||
// Should show file and line/col if present
|
||||
if (err.file) {
|
||||
console.error('File: ' + err.file);
|
||||
}
|
||||
console.error(err.stack);
|
||||
console.error('\nBuild failed');
|
||||
process.exit(1);
|
||||
});
|
||||
});
|
||||
|
||||
// ------------
|
||||
// clean
|
||||
|
||||
@ -317,15 +362,6 @@ gulp.task('build/transpile.ts.cjs', function() {
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('build/transpile.js.dev.es6', transpile(gulp, gulpPlugins, {
|
||||
src: CONFIG.transpile.src.js,
|
||||
dest: CONFIG.dest.js.dev.es6,
|
||||
outputExt: 'es6',
|
||||
options: CONFIG.transpile.options.js.dev,
|
||||
srcFolderInsertion: CONFIG.srcFolderInsertion.js
|
||||
}));
|
||||
|
||||
|
||||
gulp.task('build/transpile.ts.dev.es5', function() {
|
||||
var tsResult = gulp.src(CONFIG.transpile.src.ts)
|
||||
.pipe(sourcemaps.init())
|
||||
@ -353,7 +389,7 @@ gulp.task('build/transpile.js.dev.es5', function() {
|
||||
|
||||
gulp.task('build/transpile.js.dev', function(done) {
|
||||
runSequence(
|
||||
'build/transpile.js.dev.es6',
|
||||
// broccoli runs the ES6 version of this task
|
||||
'build/transpile.js.dev.es5',
|
||||
done
|
||||
);
|
||||
@ -806,6 +842,7 @@ gulp.task('build.dart', function(done) {
|
||||
|
||||
gulp.task('build.js.dev', function(done) {
|
||||
runSequence(
|
||||
'broccoli',
|
||||
['build/transpile.js.dev', 'build/html.js.dev', 'build/copy.js.dev', 'build/multicopy.js.dev.es6'],
|
||||
'build/checkCircularDependencies',
|
||||
done
|
||||
|
Reference in New Issue
Block a user