UNPKG

2.03 kBJavaScriptView Raw
1/**
2 * Created by Nikolay Glushchenko <nick@nickalie.com> on 08.09.2015.
3 */
4
5var gulp = require('gulp');
6var sourcemaps = require('gulp-sourcemaps');
7var concat = require('gulp-concat');
8var uglify = require('gulp-uglify');
9var gzip = require('gulp-gzip');
10var common = require('./common');
11var fixSourcemaps = require('./rollup/fix-sourcemaps');
12var debug = require('gulp-debug');
13var _ = require('lodash');
14
15_.each(common.bundleKinds, function(kind) {
16 gulp.task('fix-' + kind + '-sourcemaps-rollup-index', ['compile-' + kind], function() {
17 return fixSourcemaps.distBundleRollupIndex(kind);
18 });
19 gulp.task('fix-' + kind + '-sourcemaps-main', ['compile-' + kind, 'fix-' + kind + '-sourcemaps-rollup-index'], function() {
20 return fixSourcemaps.distBundle(kind);
21 });
22 gulp.task('fix-' + kind + '-sourcemaps', ['fix-' + kind + '-sourcemaps-rollup-index', 'fix-' + kind + '-sourcemaps-main']);
23});
24
25gulp.task('fix-main-build-sourcemaps', ['do-bundle-main'], function() {
26 return fixSourcemaps.endBundle('main');
27});
28
29gulp.task('do-bundle-main', ['compile-main', 'templates', 'fix-main-sourcemaps'], function() {
30 return gulp.src([common.dist.main + '/templates/*.js', common.dist.main + '/' + common.bundles.main],
31 { base: common.dist.main })
32 .pipe(sourcemaps.init({loadMaps: true}))
33 .pipe(common.replaceAll())
34 .pipe(uglify({mangle: false}))
35 .pipe(concat(common.bundles.main))
36 .pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: '../' + common.srcDirs.main}))
37 .pipe(gulp.dest('build'))
38 .pipe(gzip())
39 .pipe(gulp.dest('build'));
40});
41
42gulp.task('bundle-main', ['do-bundle-main', 'fix-main-build-sourcemaps']);
43
44var bundleTaskDeps = ['bundle-main'];
45if (common.pkg.examples) {
46 gulp.task('bundle-examples', ['compile-examples', 'fix-examples-sourcemaps']);
47 bundleTaskDeps.push('bundle-examples')
48}
49
50gulp.task('bundle', bundleTaskDeps);
51
52gulp.task('bundle-tests', ['compile-tests', 'fix-tests-sourcemaps']);