-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
72 lines (61 loc) · 1.88 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
var gulp = require('gulp'),
rm = require('gulp-rimraf'),
path = require('path'),
babel = require( 'rollup-plugin-babel' ),
rollup = require('gulp-rollup')
sourcemaps = require('gulp-sourcemaps'),
ractive = require('gulp-ractive'),
concat = require('gulp-concat'),
declare = require('gulp-declare'),
connect = require('gulp-connect');
gulp.task('clean', function() {
return gulp.src('assets').pipe(rm());
});
gulp.task('copy', function() {
gulp.src(['node_modules/ractive/ractive.js', 'node_modules/ractive/ractive.js.map', 'node_modules/lodestar-ractive/dist/lodestar-ractive.js'])
.pipe(gulp.dest('dist/assets/js/'));
gulp.src(['./app/index.html'])
.pipe(gulp.dest('./dist/'))
.pipe(connect.reload());
});
gulp.task('precompile', function() {
return gulp.src('app/views/**/*.html')
.pipe(ractive({
preserveWhitespace: true
}))
.pipe(declare({
namespace: 'Templates',
noRedeclare: true
}))
.pipe(concat('templates.js'))
.pipe(gulp.dest('./dist/assets/js/'))
.pipe(connect.reload());
});
gulp.task('rollup', function() {
return gulp.src('./app/main.js', {read: false})
.pipe(rollup({
format: 'iife',
moduleName: 'main',
sourceMap: true,
plugins: [
babel()
],
external: [ 'lodestar-ractive' ]
}))
.pipe(sourcemaps.write(".")) // this only works if the sourceMap option is true
.pipe(gulp.dest('dist/assets/js/'))
.pipe(connect.reload());
});
gulp.task('watch', function() {
gulp.watch('./app/js/**/*.js', [ 'rollup' ]);
gulp.watch('./app/views/**/*.html', [ 'precompile' ]);
gulp.watch('./app/index.html', [ 'copy' ]);
});
gulp.task('connect', function() {
connect.server({
root: 'dist',
livereload: true
});
});
gulp.task('default', ['copy', 'rollup', 'precompile', 'connect', 'watch']);
gulp.task('build', ['copy', 'rollup', 'precompile']);