This repository has been archived by the owner on Jul 5, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
107 lines (94 loc) · 2.86 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
'use strict'
var gulp = require('gulp')
var tsc = require('gulp-typescript')
var tslint = require('gulp-tslint')
var sourcemaps = require('gulp-sourcemaps')
var uglify = require('gulp-uglify')
var sass = require('gulp-sass')
var del = require('del')
var Config = require('./gulpfile.config')
var tsProject = tsc.createProject('tsconfig.json')
var config = new Config()
/**
* Generates the app.d.ts references file dynamically from all application *.ts files.
*/
// gulp.task('gen-ts-refs', function () {
// var target = gulp.src(config.appTypeScriptReferences);
// var sources = gulp.src([config.allTypeScript], {read: false});
// return target.pipe(inject(sources, {
// starttag: '//{',
// endtag: '//}',
// transform: function (filepath) {
// return '/// <reference path="../..' + filepath + '" />';
// }
// })).pipe(gulp.dest(config.typings));
// });
/**
* Lint all custom TypeScript files.
*/
gulp.task('ts-lint', function () {
return gulp
.src(config.allTypeScript)
.pipe(
tslint({
formatter: 'verbose'
})
)
.pipe(tslint.report())
})
/**
* Compile TypeScript and include references to library and app .d.ts files.
*/
gulp.task('compile-ts', function () {
var sourceTsFiles = [
config.allTypeScript, // path to typescript files
config.libraryTypeScriptDefinitions
] // reference to library .d.ts files
var tsResult = gulp
.src(sourceTsFiles)
.pipe(sourcemaps.init())
.pipe(tsProject())
tsResult.dts.pipe(gulp.dest(config.tsOutputPath))
return tsResult.js
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(config.tsOutputPath))
})
gulp.task('minify-ts', ['compile-ts'], function () {
return gulp
.src(config.allJavaScript)
.pipe(uglify())
.pipe(gulp.dest(config.dist))
})
gulp.task('minify-sass', function () {
return gulp
.src(config.allSass)
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
.pipe(gulp.dest(config.dist))
})
gulp.task('sass', function () {
return gulp
.src(config.allSass)
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest(config.sassOutputPath))
})
gulp.task('watch-sass', function () {
gulp.watch(config.allSass, ['sass'])
})
/**
* Remove all generated JavaScript files from TypeScript compilation.
*/
gulp.task('clean-ts', function (cb) {
var typeScriptGenFiles = [
config.tsOutputPath + '/**/*.js', // path to all JS files auto gen'd by editor
config.tsOutputPath + '/**/*.js.map', // path to all sourcemap files auto gen'd by editor
'!' + config.tsOutputPath + '/lib'
]
// delete the files
del(typeScriptGenFiles, cb)
})
gulp.task('watch-ts', function () {
gulp.watch([config.allTypeScript], ['ts-lint', 'compile-ts'])
})
gulp.task('watch', ['watch-ts', 'watch-sass'])
gulp.task('build', ['minify-ts', 'minify-sass'])
gulp.task('default', ['compile-ts', 'sass'])