-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathGruntfile.js
More file actions
124 lines (122 loc) · 3.07 KB
/
Gruntfile.js
File metadata and controls
124 lines (122 loc) · 3.07 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
module.exports = function (grunt) {
var config = {
jshint: {
options: {
ignores: ['node_modules/**', 'public/vendor/**', '**/*.min.js'],
jshintrc: '.jshintrc'
},
gruntfile: 'Gruntfile.js',
server: ['controllers/**/*.js', 'models/**/*.js', 'routes/**/*.js', 'app.js', 'config.js'],
client: 'public/js/**/*.js'
},
concat: {
css: {
// add your css files over here to concatenate all css files
// let's save our site users some bandwith
files: {
src: ['public/vendor/bootstrap/dist/css/bootstrap.min.css', 'public/css/styles.min.css'],
dest: 'public/css/app.styles.min.css'
}
}
},
express: {
options: {
port: process.env.PORT || 3001
},
dev: {
options: {
script: 'app.js',
debug: true
}
}
},
open: {
server: {
url: 'http://localhost:<%= express.options.port %>'
}
},
uglify: {
options: {
mangle: {
except: ['jQuery']
}
},
target: {
// add your js files over here to minify them into one javascript source file
'public/js/app.min.js': ['public/vendor/jquery/dist/jquery.min.js', 'public/vendor/bootstrap/dist/js/bootstrap.min.js', 'public/js/main.js']
}
},
sass: {
src: {
files: [{
expand: true,
cwd: 'public/sass',
src: '**/*.scss',
dest: 'public/css',
ext: '.css'
}]
}
},
cssmin: {
src: {
files: [{
expand: true,
cwd: 'public/css',
src: '**/*.css',
dest: 'public/css',
ext: '.min.css'
}]
}
},
'node-inspector': {
options: {
'save-live-edit': true
}
},
watch: {
all: {
files: ['public/**/*', 'views/**', '!**/node_modules/**', '!public/vendor/**/*', '!**/*.min.*'],
options: {
livereload: true
}
},
gruntfile: {
files: 'Gruntfile.js',
tasks: 'jshint:gruntfile'
},
scripts: {
files: 'public/js/**/*.js',
tasks: ['jshint:client', 'uglify']
},
server: {
files: '<%= jshint.server %>',
tasks: 'jshint:server'
},
scss: {
files: ['public/sass/**/*.scss'],
tasks: ['sass', 'cssmin', 'concat:css']
}
},
concurrent: {
tasks: ['node-inspector', 'watch'],
options: {
logConcurrentOutput: true
}
}
};
grunt.initConfig(config);
// Load the tasks
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
grunt.registerTask('default', ['jshint', 'uglify', 'sass', 'cssmin', 'concat:css', 'concurrent']);
grunt.registerTask('serve', function () {
grunt.task.run([
'uglify',
'sass',
'cssmin',
'concat:css',
'express:dev',
'open',
'concurrent'
])
})
};