Skip to content

Commit fa725b4

Browse files
pkozlowski-opensourcevsavkin
authored andcommitted
feat(bundles): publish UMD bundles
Closes #5223
1 parent 5a27ffb commit fa725b4

File tree

4 files changed

+882
-3
lines changed

4 files changed

+882
-3
lines changed

gulpfile.js

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ var sourcemaps = require('gulp-sourcemaps');
3737
var tsc = require('gulp-typescript');
3838
var util = require('./tools/build/util');
3939
var bundler = require('./tools/build/bundle');
40+
var rename = require('gulp-rename');
4041
var replace = require('gulp-replace');
4142
var insert = require('gulp-insert');
4243
var buildRouter = require('./modules/angular1_router/build');
@@ -1010,6 +1011,55 @@ gulp.task('!bundle.js.sfx.dev', ['build.js.dev'], function() {
10101011
});
10111012
});
10121013

1014+
gulp.task('!bundles.js.umd', ['build.js.dev'], function() {
1015+
var webpack = q.denodeify(require('webpack'));
1016+
1017+
function resolveOptions(devOrProd) {
1018+
return {
1019+
root: __dirname + '/dist/js/' + devOrProd + '/es5',
1020+
packageAlias: '' // this option is added to ignore "broken" package.json in our dist folder
1021+
};
1022+
}
1023+
1024+
function outputOptions(outFileName, devOrProd) {
1025+
return {
1026+
filename:
1027+
'dist/js/bundle/' + outFileName + '.umd' + (devOrProd === 'dev' ? '.dev' : '') + '.js',
1028+
library: 'ng',
1029+
libraryTarget: 'umd'
1030+
};
1031+
}
1032+
1033+
function webPackConf(entryPoints, outFileName, devOrProd) {
1034+
return {
1035+
entry: entryPoints,
1036+
resolve: resolveOptions(devOrProd),
1037+
output: outputOptions(outFileName, devOrProd)
1038+
};
1039+
}
1040+
1041+
return q.all([
1042+
webpack(webPackConf(['angular2/angular2.js'], 'angular2', 'dev')),
1043+
webpack(webPackConf(['angular2/angular2.js'], 'angular2', 'prod')),
1044+
webpack(webPackConf(['angular2/angular2.js', 'angular2/http.js', 'angular2/router.js'],
1045+
'angular2_all', 'dev')),
1046+
webpack(webPackConf(['angular2/angular2.js', 'angular2/http.js', 'angular2/router.js'],
1047+
'angular2_all', 'prod'))
1048+
]);
1049+
});
1050+
1051+
gulp.task('bundles.js.umd.min', ['!bundles.js.umd', '!bundle.external.deps'], function() {
1052+
// minify production bundles
1053+
return gulp.src([
1054+
'dist/js/bundle/external-dependencies.js',
1055+
'dist/js/bundle/angular2.umd.js',
1056+
'dist/js/bundle/angular2_all.umd.js'
1057+
])
1058+
.pipe(uglify())
1059+
.pipe(rename({extname: '.min.js'}))
1060+
.pipe(gulp.dest('dist/js/bundle'));
1061+
});
1062+
10131063
gulp.task('!bundle.js.prod.deps', ['!bundle.js.prod'], function() {
10141064
return merge2(addDevDependencies('angular2.js'),
10151065
bundler.modify(['dist/build/http.js'], 'http.js'),
@@ -1025,9 +1075,8 @@ gulp.task('!bundle.js.min.deps', ['!bundle.js.min'], function() {
10251075
.pipe(gulp.dest('dist/js/bundle'));
10261076
});
10271077

1028-
gulp.task('!bundle.external.deps', ['clean'], function() {
1029-
return addDevDependencies('external-dependencies.js');
1030-
});
1078+
gulp.task('!bundle.external.deps', ['clean'],
1079+
function() { return addDevDependencies('external-dependencies.js'); });
10311080

10321081
var JS_DEV_DEPS = [
10331082
licenseWrap('node_modules/zone.js/LICENSE', true),
@@ -1091,6 +1140,7 @@ gulp.task('bundles.js',
10911140
'!bundle.js.min.deps',
10921141
'!bundle.web_worker.js.dev.deps',
10931142
'!bundle.js.sfx.dev.deps',
1143+
'bundles.js.umd.min',
10941144
'!bundle.testing',
10951145
'!bundle.external.deps'
10961146
],

0 commit comments

Comments
 (0)