|
| 1 | +var gulp = require('gulp'); |
| 2 | +var runSequence = require('run-sequence'); |
| 3 | +var to5 = require('gulp-babel'); |
| 4 | +var paths = require('../paths'); |
| 5 | +var changed = require('gulp-changed'); |
| 6 | +var plumber = require('gulp-plumber'); |
| 7 | +var sourcemaps = require('gulp-sourcemaps'); |
| 8 | +var compilerOptions = require('../babel-options'); |
| 9 | +var assign = Object.assign || require('object.assign'); |
| 10 | +var typescript = require('gulp-typescript'); |
| 11 | +var tsc = require('typescript'); |
| 12 | + |
| 13 | +var tsProjectES6 = typescript.createProject('./tsconfig.json', { typescript: tsc }); |
| 14 | +var tsProjectAMD = typescript.createProject('./tsconfig.json', { typescript: tsc, target: 'es5', module: 'amd' }); |
| 15 | +var tsProjectCJS = typescript.createProject('./tsconfig.json', { typescript: tsc, target: 'es5', module: 'commonjs' }); |
| 16 | +var tsProjectSystem = typescript.createProject('./tsconfig.json', { typescript: tsc, target: 'es5', module: 'system' }); |
| 17 | + |
| 18 | +function buildFromTs(tsProject, outputPath, includeEs6Dts) { |
| 19 | + var src = paths.dtsSrc.concat(paths.source); |
| 20 | + |
| 21 | + return gulp.src(src) |
| 22 | + .pipe(plumber()) |
| 23 | + .pipe(sourcemaps.init({loadMaps: true})) |
| 24 | + .pipe(changed(outputPath, {extension: '.js'})) |
| 25 | + .pipe(typescript(tsProject)) |
| 26 | + .pipe(sourcemaps.write({includeContent: true})) |
| 27 | + .pipe(gulp.dest(outputPath)); |
| 28 | +} |
| 29 | + |
| 30 | +gulp.task('build-html-ts', function () { |
| 31 | + return gulp.src(paths.html) |
| 32 | + .pipe(gulp.dest(paths.output + 'ts')); |
| 33 | +}); |
| 34 | + |
| 35 | +gulp.task('build-ts', ['build-html-ts'], function() { |
| 36 | + return gulp.src(paths.source) |
| 37 | + .pipe(gulp.dest(paths.output + 'ts')); |
| 38 | +}); |
| 39 | + |
| 40 | +gulp.task('build-html-es6', function () { |
| 41 | + return gulp.src(paths.html) |
| 42 | + .pipe(gulp.dest(paths.output + 'es6')); |
| 43 | +}); |
| 44 | + |
| 45 | +gulp.task('build-es6', ['build-html-es6'], function () { |
| 46 | + return buildFromTs(tsProjectES6, paths.output + 'es6', false); |
| 47 | +}); |
| 48 | + |
| 49 | +gulp.task('build-html-commonjs', function () { |
| 50 | + return gulp.src(paths.html) |
| 51 | + .pipe(gulp.dest(paths.output + 'commonjs')); |
| 52 | +}); |
| 53 | + |
| 54 | +gulp.task('build-commonjs', ['build-html-commonjs'], function () { |
| 55 | + return buildFromTs(tsProjectCJS, paths.output + 'commonjs', true); |
| 56 | +}); |
| 57 | + |
| 58 | +gulp.task('build-html-amd', function () { |
| 59 | + return gulp.src(paths.html) |
| 60 | + .pipe(gulp.dest(paths.output + 'amd')); |
| 61 | +}); |
| 62 | + |
| 63 | +gulp.task('build-amd', ['build-html-amd'], function () { |
| 64 | + return buildFromTs(tsProjectAMD, paths.output + 'amd', true); |
| 65 | +}); |
| 66 | + |
| 67 | +gulp.task('build-html-system', function () { |
| 68 | + return gulp.src(paths.html) |
| 69 | + .pipe(gulp.dest(paths.output + 'system')); |
| 70 | +}); |
| 71 | + |
| 72 | +gulp.task('build-system', ['build-html-system'], function () { |
| 73 | + return buildFromTs(tsProjectSystem, paths.output + 'system', true); |
| 74 | +}); |
| 75 | + |
| 76 | +gulp.task('build-ts-typings', function () { |
| 77 | + return gulp.src(paths.dts) |
| 78 | + .pipe(gulp.dest(paths.output)); |
| 79 | +}); |
| 80 | + |
| 81 | +gulp.task('build', function(callback) { |
| 82 | + return runSequence( |
| 83 | + 'clean', |
| 84 | + ['build-ts', 'build-es6', 'build-commonjs', 'build-amd', 'build-system', 'build-ts-typings'], |
| 85 | + callback |
| 86 | + ); |
| 87 | +}); |
0 commit comments