Skip to content

Commit c0b04ca

Browse files
Rob Wormaldrkirov
authored andcommitted
feat(gulp): adds System.register bundle task.
1 parent 86dc3e5 commit c0b04ca

File tree

4 files changed

+81
-1
lines changed

4 files changed

+81
-1
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,7 @@ pubspec.lock
2626
# Don't check in secret files
2727
*secret.js
2828

29+
# Ignore npm debug log
30+
npm-debug.log
31+
2932
/docs/bower_components/

gulpfile.js

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,13 @@ var transformCJSTests = require('./tools/build/transformCJSTests');
2929
var tsc = require('gulp-typescript');
3030
var ts2dart = require('gulp-ts2dart');
3131
var util = require('./tools/build/util');
32+
var bundler = require('./tools/build/bundle');
33+
var concat = require('gulp-concat');
3234

3335
// Note: when DART_SDK is not found, all gulp tasks ending with `.dart` will be skipped.
36+
3437
var DART_SDK = require('./tools/build/dartdetect')(gulp);
38+
3539
// -----------------------
3640
// configuration
3741

@@ -787,7 +791,71 @@ gulp.task('build.js.cjs', function(done) {
787791
);
788792
});
789793

790-
gulp.task('build.js', ['build.js.dev', 'build.js.prod', 'build.js.cjs']);
794+
var bundleConfig = {
795+
paths: {
796+
"*": "dist/js/prod/es6/*.es6",
797+
"rx/*": "node_modules/rx/*.js"
798+
}
799+
};
800+
801+
// production build
802+
gulp.task('bundle.js.prod', ['build.js.prod'], function() {
803+
return bundler.bundle(
804+
bundleConfig,
805+
'angular2/angular2',
806+
'./dist/build/angular2.js',
807+
{
808+
sourceMaps: true
809+
});
810+
});
811+
812+
gulp.task('bundle.js.prod.deps', ['bundle.js.prod'], function() {
813+
return gulp.src(['node_modules/zone.js/zone.js', 'dist/build/angular2.js'])
814+
.pipe(concat('angular2.js'))
815+
.pipe(gulp.dest('dist/bundle'));
816+
});
817+
818+
// minified production build
819+
// TODO: minify zone.js?
820+
gulp.task('bundle.js.min', ['build.js.prod'], function() {
821+
return bundler.bundle(
822+
bundleConfig,
823+
'angular2/angular2',
824+
'./dist/build/angular2.min.js',
825+
{
826+
sourceMaps: true,
827+
minify: true
828+
});
829+
});
830+
831+
gulp.task('bundle.js.min.deps', ['bundle.js.min'], function() {
832+
return gulp.src(['node_modules/zone.js/zone.js', 'dist/build/angular2.min.js'])
833+
.pipe(concat('angular2.min.js'))
834+
.pipe(gulp.dest('dist/bundle'));
835+
});
836+
837+
// development build
838+
gulp.task('bundle.js.dev', ['build.js.dev'], function() {
839+
return bundler.bundle(
840+
merge(true, bundleConfig, {
841+
"*": "dist/js/dev/es6/*.es6"
842+
}),
843+
'angular2/angular2',
844+
'./dist/build/angular2.dev.js',
845+
{
846+
sourceMaps: true
847+
});
848+
});
849+
850+
gulp.task('bundle.js.dev.deps', ['bundle.js.dev'], function() {
851+
return gulp.src(['node_modules/zone.js/zone.js', 'dist/build/angular2.dev.js'])
852+
.pipe(concat('angular2.dev.js'))
853+
.pipe(gulp.dest('dist/bundle'));
854+
});
855+
856+
gulp.task('build.js', ['build.js.dev', 'build.js.prod', 'build.js.cjs', 'bundle.js.deps']);
857+
858+
gulp.task('bundle.js.deps', ['bundle.js.prod.deps', 'bundle.js.dev.deps', 'bundle.js.min.deps']);
791859

792860
gulp.task('clean', ['build/clean.js', 'build/clean.dart', 'build/clean.docs']);
793861

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"glob": "^4.0.6",
4949
"gulp": "^3.8.8",
5050
"gulp-changed": "^1.0.0",
51+
"gulp-concat": "^2.5.2",
5152
"gulp-connect": "~1.0.5",
5253
"gulp-jasmine": "^1.0.1",
5354
"gulp-load-plugins": "^0.7.1",
@@ -76,6 +77,7 @@
7677
"run-sequence": "^0.3.6",
7778
"source-map": "^0.3.0",
7879
"sprintf-js": "1.0.*",
80+
"systemjs-builder": "^0.10.3",
7981
"temp": "^0.8.1",
8082
"ternary-stream": "^1.2.3",
8183
"through2": "^0.6.1",

tools/build/bundle.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module.exports.bundle = function(buildConfig, moduleName, outputFile, outputConfig){
2+
// loading it earlier interfers with custom traceur.
3+
var Builder = require('systemjs-builder');
4+
var builder = new Builder();
5+
builder.config(buildConfig);
6+
return builder.build(moduleName, outputFile, outputConfig);
7+
}

0 commit comments

Comments
 (0)