-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGruntfile.js
133 lines (128 loc) · 3.42 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
paths: {
bootstrap: 'bower_components/bootstrap',
dist: 'lib/static/dist'
},
jshint: {
files: ['Gruntfile.js', 'caliper.js', 'lib/test/**/*.js', 'lib/routes/**/*.js', 'lib/models/**/*.js'],
options: {
jshintrc: '.jshintrc'
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: ['jshint']
},
mochacli: {
options: {
reporter: 'spec',
bail: true
},
all: ['lib/test/**/*.js']
},
copy: {
bootstrap: {
files: [
{
src: 'lib/assets/bootswatch_slate/variables.less',
dest: '<%= paths.bootstrap %>/less/variables.less'
}
]
},
fonts: {
files: [
{
src: '<%= paths.bootstrap %>/fonts/glyphicons-halflings-regular.eot',
dest: '<%= paths.dist %>/fonts/glyphicons-halflings-regular.eot'
},
{
src: '<%= paths.bootstrap %>/fonts/glyphicons-halflings-regular.svg',
dest: '<%= paths.dist %>/fonts/glyphicons-halflings-regular.svg'
},
{
src: '<%= paths.bootstrap %>/fonts/glyphicons-halflings-regular.ttf',
dest: '<%= paths.dist %>/fonts/glyphicons-halflings-regular.ttf'
},
{
src: '<%= paths.bootstrap %>/fonts/glyphicons-halflings-regular.woff',
dest: '<%= paths.dist %>/fonts/glyphicons-halflings-regular.woff'
}
]
}
},
less: {
compileBSCore: {
options: {
strictMath: true,
sourceMap: true,
outputSourceFiles: true,
sourceMapURL: 'bootstrap.css.map',
sourceMapFilename: 'lib/static/dist/css/bootstrap.css.map'
},
files: {
'lib/static/dist/css/bootstrap.css': '<%= paths.bootstrap %>/less/bootstrap.less'
}
},
compileBSTheme: {
options: {
strictMath: true,
sourceMap: true,
outputSourceFiles: true,
sourceMapURL: 'bootstrap-theme.css.map',
sourceMapFilename: 'lib/static/dist/css/bootstrap-theme.css.map'
},
files: {
'lib/static/dist/css/bootstrap-theme.css': '<%= paths.bootstrap %>/less/theme.less'
}
},
minify: {
options: {
cleancss: true,
report: 'min'
},
files: {
'lib/static/dist/css/bootstrap.min.css': 'lib/static/dist/css/bootstrap.css',
'lib/static/dist/css/bootstrap-theme.min.css': 'lib/static/dist/css/bootstrap-theme.css'
}
}
},
concat: {
bootstrap: {
src: [
'<%= paths.bootstrap %>/js/transition.js',
'<%= paths.bootstrap %>/js/alert.js',
'<%= paths.bootstrap %>/js/button.js',
'<%= paths.bootstrap %>/js/carousel.js',
'<%= paths.bootstrap %>/js/collapse.js',
'<%= paths.bootstrap %>/js/dropdown.js',
'<%= paths.bootstrap %>/js/modal.js',
'<%= paths.bootstrap %>/js/tooltip.js',
'<%= paths.bootstrap %>/js/popover.js',
'<%= paths.bootstrap %>/js/scrollspy.js',
'<%= paths.bootstrap %>/js/tab.js',
'<%= paths.bootstrap %>/js/affix.js'
],
dest: 'lib/static/dist/js/bootstrap.js'
}
}
});
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-mocha-cli');
grunt.registerTask('test', ['jshint', 'mochacli']);
grunt.registerTask('build',
[
'copy:bootstrap',
'less:compileBSCore',
'less:compileBSTheme',
'less:minify',
'concat:bootstrap',
'copy:fonts'
]
);
};