-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
110 lines (84 loc) · 3.47 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
108
109
110
var gulp = require('gulp'),
del = require('del'),
util = require('gulp-util'),
typescript = require('gulp-typescript'),
tscConfig = require('./tsconfig.json'),
sourcemaps = require('gulp-sourcemaps'),
sass = require('gulp-sass');
var base = {
src: "src",
dest: "Nancy"
};
// Clean - Delete the contents of the distribution directory
gulp.task('clean', function () {
var stream = del(base.dest + '/app/**/*');
return stream;
});
// TypeScript - compile and save .js files to destination
gulp.task('typescript', ['clean'], function () {
var stream = gulp
.src(base.src + '/**/*.ts')
.pipe(sourcemaps.init()) // <--- sourcemaps //.on('error', util.log)
.pipe(typescript(tscConfig.compilerOptions))
.pipe(sourcemaps.write('.')) // <--- sourcemaps //.on('error', util.log)
.pipe(gulp.dest(base.dest + '/app'));
return stream;
});
// SCSS - compile and save .css files to destination
gulp.task('scss', ['clean'], function () {
var stream = gulp
.src(base.src + '/**/*.scss')
.pipe(sass().on('error', sass.logError)) //util.log
.pipe(gulp.dest(base.dest + '/app'));
return stream;
});
// copy:libs - copy dependencies
gulp.task('copy:libs', ['clean'], function() {
var stream = gulp
.src([
'node_modules/es6-shim/es6-shim.min.js',
'node_modules/systemjs/dist/system-polyfills.js',
'node_modules/angular2/es6/dev/src/testing/shims_for_IE.js',
'node_modules/angular2/bundles/angular2-polyfills.js',
'node_modules/systemjs/dist/system.src.js',
'node_modules/rxjs/bundles/Rx.js',
'node_modules/angular2/bundles/angular2.dev.js',
'node_modules/angular2/bundles/router.dev.js',
'node_modules/jquery/dist/jquery.min.js',
'node_modules/ms-signalr-client/jquery.signalr-2.2.0.min.js',
'node_modules/angular2-materialize/dist/index.js',
'node_modules/angular2-materialize/dist/materialize-directive.js',
'node_modules/materialize-css/dist/css/materialize.min.css'
])
.pipe(gulp.dest(base.dest + '/app/lib'));
return stream;
});
// copy:fonts
gulp.task('copy:fonts', ['clean'], function () {
var stream = gulp
.src([
'node_modules/materialize-css/dist/font/roboto/**/*'
])
.pipe(gulp.dest(base.dest + '/app/fonts/roboto'));
return stream;
});
// copy:assets - copy static assets - i.e. non TypeScript compiled source
gulp.task('copy:assets', ['clean'], function () {
var stream = gulp
.src([base.src + '/**/*', '!' + base.src + '/**/*.ts', '!' + base.src + '/**/*.scss'])
.pipe(gulp.dest(base.dest + '/app'));
return stream;
});
// Build
gulp.task('build', ['typescript', 'scss', 'copy:libs', 'copy:fonts', 'copy:assets']);
// Watch all source files for changes
gulp.task('watch', ['build'], function () {
var watcher = gulp.watch([base.src + '/*.*', base.src + '/**/*'], ['build']);
var timeout = setTimeout(watcher.end, 60 * 60 * 1000); //Stop watching if inactive for 1hr
watcher.on('change', function(e) {
clearTimeout(timeout);
timeout = setTimeout(watcher.end, 60 * 60 * 1000);
util.log(util.colors.inverse('FILE ' + e.type.toUpperCase()), util.colors.gray(e.path));
});
});
gulp.task('default', ['build']);