|
3 | 3 | * This file needs to be JavaScript and is read by gulp.
|
4 | 4 | */
|
5 | 5 | // Global imports.
|
| 6 | +const child_process = require('child_process'); |
6 | 7 | const fs = require('fs');
|
7 | 8 | const gulp = require('gulp');
|
8 | 9 | const path = require('path');
|
| 10 | +const resolveBin = require('resolve-bin'); |
9 | 11 |
|
10 | 12 | // Other imports.
|
11 | 13 | const inlineResources = require('./scripts/release/inline-resources');
|
12 | 14 |
|
13 | 15 | // Gulp plugins.
|
14 | 16 | const gulpClean = require('gulp-clean');
|
15 |
| -const gulpTs = require('gulp-typescript'); |
| 17 | +const gulpLiveServer = require('gulp-live-server'); |
16 | 18 | const gulpMerge = require('merge2');
|
| 19 | +const gulpRunSequence = require('run-sequence'); |
17 | 20 | const gulpSass = require('gulp-sass');
|
18 | 21 | const gulpSourcemaps = require('gulp-sourcemaps');
|
19 |
| -const gulpLiveServer = require('gulp-live-server'); |
| 22 | +const gulpTs = require('gulp-typescript'); |
20 | 23 |
|
21 | 24 |
|
22 | 25 | // Directories.
|
@@ -48,15 +51,12 @@ function makeTsBuildTask(options) {
|
48 | 51 | .pipe(gulpTs(tsProject));
|
49 | 52 | let dts = pipe.dts.pipe(gulp.dest(dest));
|
50 | 53 |
|
51 |
| - if (tsConfig.compilerOptions.sourceMap) { |
52 |
| - if (!tsConfig.compilerOptions.inlineSources) { |
53 |
| - pipe = pipe.pipe(gulpSourcemaps.write(dest)); |
54 |
| - } else { |
55 |
| - pipe = pipe.pipe(gulpSourcemaps.write()); |
56 |
| - } |
57 |
| - } |
58 |
| - |
59 |
| - return gulpMerge([dts, pipe.pipe(gulp.dest(dest))]); |
| 54 | + return gulpMerge([ |
| 55 | + dts, |
| 56 | + pipe |
| 57 | + .pipe(gulpSourcemaps.write('.')) |
| 58 | + .pipe(gulp.dest(dest)) |
| 59 | + ]); |
60 | 60 | };
|
61 | 61 | }
|
62 | 62 |
|
@@ -108,6 +108,24 @@ gulp.task('build:components', [
|
108 | 108 | ], function() {
|
109 | 109 | inlineResources([outLibDir]);
|
110 | 110 | });
|
| 111 | +gulp.task('build:components:ngc', ['build:components'], function(done) { |
| 112 | + resolveBin('@angular/compiler-cli', { executable: 'ngc' }, function(err, cliPath) { |
| 113 | + if (err) { |
| 114 | + console.error(err); |
| 115 | + process.exit(1); |
| 116 | + } |
| 117 | + |
| 118 | + child_process.exec(`${cliPath} -p ${path.relative(__dirname, componentsDir)}`, function(error) { |
| 119 | + console.log(arguments); |
| 120 | + if (error) { |
| 121 | + console.error(error); |
| 122 | + process.exit(1); |
| 123 | + } |
| 124 | + |
| 125 | + done(); |
| 126 | + }); |
| 127 | + }); |
| 128 | +}); |
111 | 129 |
|
112 | 130 | /***************************************************************************************************
|
113 | 131 | * DevApp Build Tasks.
|
@@ -189,12 +207,24 @@ gulp.task('build:e2eapp', [
|
189 | 207 | /***************************************************************************************************
|
190 | 208 | * Global tasks.
|
191 | 209 | */
|
| 210 | +gulp.task('default', function() { |
| 211 | + console.log(`You're probably looking for "build" or "serve:devapp".`); |
| 212 | +}); |
| 213 | + |
192 | 214 | gulp.task('build', ['build:devapp']);
|
193 | 215 |
|
194 |
| -gulp.task('clean', function () { |
| 216 | +gulp.task('clean', function() { |
195 | 217 | return gulp.src('dist', { read: false })
|
196 | 218 | .pipe(gulpClean());
|
197 | 219 | });
|
| 220 | +gulp.task('clean:spec', function() { |
| 221 | + return gulp.src('dist/**/*.spec.*', { read: false }) |
| 222 | + .pipe(gulpClean()); |
| 223 | +}); |
| 224 | +gulp.task('clean:assets', function() { |
| 225 | + return gulp.src('dist/**/*+(.html|.css)', { read: false }) |
| 226 | + .pipe(gulpClean()); |
| 227 | +}); |
198 | 228 |
|
199 | 229 |
|
200 | 230 | /***************************************************************************************************
|
@@ -243,3 +273,16 @@ gulp.task('serve:e2eapp', ['build:e2eapp'], function() {
|
243 | 273 | gulp.watch(path.join(e2eAppDir, '**/*.scss'), ['build:e2eapp:scss'], reload);
|
244 | 274 | gulp.watch(path.join(e2eAppDir, '**/*.html'), ['build:e2eapp:assets'], reload);
|
245 | 275 | });
|
| 276 | + |
| 277 | +/*************************************************************************************************** |
| 278 | + * Release builds. |
| 279 | + */ |
| 280 | +gulp.task('build:release', function(done) { |
| 281 | + // Synchronously run those tasks. |
| 282 | + gulpRunSequence( |
| 283 | + 'clean', |
| 284 | + 'build:components:ngc', |
| 285 | + ['clean:spec', 'clean:assets'], |
| 286 | + done |
| 287 | + ); |
| 288 | +}); |
0 commit comments