-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathgulpfile.js
More file actions
executable file
·103 lines (88 loc) · 3.19 KB
/
gulpfile.js
File metadata and controls
executable file
·103 lines (88 loc) · 3.19 KB
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
'use strict';
// +---------------------------------------------------------------------------+
// | Dependencies |
// +---------------------------------------------------------------------------+
var gulp = require('gulp');
var sass = require('gulp-sass');
var scss_lint = require('gulp-scss-lint');
var typescript = require('gulp-typescript');
var tslint = require('gulp-tslint');
var sourcemaps = require('gulp-sourcemaps');
var gutil = require('gulp-util');
// +---------------------------------------------------------------------------+
// | Variables |
// +---------------------------------------------------------------------------+
var sass_src = 'public/scss/**/*.scss';
var sass_dest = 'public/css';
var sass_lint = 'public/scss/.scsslint.yml';
var ts_src = 'public/ts/**/*.ts';
var ts_dest = 'public/js';
var ts_lint = 'public/ts/tslint.json';
// +---------------------------------------------------------------------------+
// | Tasks |
// +---------------------------------------------------------------------------+
/**
* Builds scss with sourcemaps
* src: sass_src
* dest: sass_dest
*/
gulp.task('sass:build', function() {
gulp.src(sass_src)
.pipe(sourcemaps.init())
.pipe(sass().on('error', sass.logError))
.pipe(sourcemaps.write())
.pipe(gulp.dest(sass_dest));
});
/**
* Builds typescript with sourcemaps
* src: ts_src
* dest: ts_dest
*/
gulp.task('ts:build', function() {
gulp.src(ts_src)
.pipe(sourcemaps.init())
.pipe(typescript({}, "", typescript.reporter.defaultReporter()))
.pipe(sourcemaps.write())
.pipe(gulp.dest(ts_dest));
});
/**
* Lint scss
* src: sass_src
* config: sass_lint
*/
gulp.task('sass:lint', function() {
gulp.src(['!./public/scss/libraries/_normalize.scss', sass_src])
.pipe(scss_lint({
'config': sass_lint
}));
});
/**
* Lint typescript
* src: ts_src
*/
gulp.task('ts:lint', function() {
gulp.src(ts_src)
.pipe(tslint().on('error', gutil.log))
.pipe(tslint.report('prose'));
});
/**
* Watch scss files and build/lint on change
* src: sass_src
*/
gulp.task('sass:watch', function() {
gulp.watch(sass_src, ['sass:lint', 'sass:build']);
});
/**
* Watch typescript files and build/lint on change
* src: ts_src
*/
gulp.task('ts:watch', function() {
gulp.watch(ts_src, [/*'ts:lint', */'ts:build']);
});
// +---------------------------------------------------------------------------+
// | Default Tasks |
// +---------------------------------------------------------------------------+
gulp.task('watch', ['sass:watch', 'ts:watch']); // Watches all files and builds/lints.
gulp.task('build', ['sass:build', 'ts:build']); // Compiles all files.
gulp.task('test', ['sass:lint'/*, 'ts:lint'*/]); // Test/Lints all files.
gulp.task('default', ['test', 'build', 'watch']); // Default it to watch,