-
Notifications
You must be signed in to change notification settings - Fork 2
/
Gruntfile.js
108 lines (92 loc) · 2.63 KB
/
Gruntfile.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
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: ['dist'],
// Compile Pug
// ----------------------
pug: {
email: {
options: {
pretty: true,
data: {
timestamp: "<%= new Date().getTime() %>"
}
},
files: [{
expand: true, // Enable dynamic expansion.
cwd: 'src/pug', // Src matches are relative to this path.
src: ['*.pug'], // Actual pattern(s) to match.
dest: 'dist/html/', // Destination path prefix.
ext: '.html', // Dest filepaths will have this extension.
}]
}
},
// Compile Sass
// ----------------------
sass: {
options: {
sourceMap: true
},
dist: {
files: [{
expand: true, // Enable dynamic expansion.
cwd: 'src/scss', // Src matches are relative to this path.
src: ['*.scss'], // Actual pattern(s) to match.
dest: 'dist/css/', // Destination path prefix.
ext: '.css', // Dest filepaths will have this extension.
}]
}
},
// Email Builder
// ----------------------
emailBuilder: {
test :{
files: [{
expand: true, // Enable dynamic expansion.
cwd: 'dist/html', // Src matches are relative to this path.
src: ['*.html'], // Actual pattern(s) to match.
dest: 'dist/email/', // Destination path prefix.
ext: '.html', // Dest filepaths will have this extension.
}]
}
},
// Start a server
// ----------------------
connect: {
server: {
options: {
open: true,
port: 9001,
livereload: true,
base: 'dist/email'
}
}
},
// Watch task
// ----------------------
watch: {
options: {
livereload: true
},
pug: {
files: 'src/pug/**/*.pug',
tasks: ['pug', 'emailBuilder']
},
sass: {
files: 'src/scss/**/*.scss',
tasks: ['sass', 'emailBuilder']
},
grunt: {
files: ['Gruntfile.js']
}
}
});
// Load the plugin that provides the "uglify" task.
require('load-grunt-tasks')(grunt);
// Default task(s).
grunt.registerTask('default', ['build']);
grunt.registerTask('build', ['clean', 'pug', 'sass', 'emailBuilder', 'connect', 'watch']);
// Test build
grunt.registerTask('test', ['clean', 'pug', 'sass', 'emailBuilder']);
};