-
Notifications
You must be signed in to change notification settings - Fork 23
/
Gruntfile.js
162 lines (153 loc) · 4.19 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
module.exports = function(grunt) {
grunt.initConfig({
less: {
algaworks: {
files: {
"dist/assets/stylesheets/algaworks.css": "sources/less/algaworks.less"
}
},
application: {
files: {
"dist/assets/stylesheets/application.css": "sources/less/application.less"
}
},
vendors: {
files: {
"dist/assets/stylesheets/vendors.css": "sources/less/vendors.less"
}
}
},
concat: {
'vendors-css': {
src: ["dist/assets/stylesheets/vendors.css", "dist/assets/vendors/sweetalert/*.css"],
dest: "dist/assets/stylesheets/vendors.css"
},
'vendors-scripts': {
src: ["dist/assets/vendors/jquery/jquery.js",
"dist/assets/vendors/bootstrap/bootstrap.js",
"dist/assets/vendors/sweetalert/sweetalert-dev.js",
"dist/assets/vendors/stickytableheaders/jquery.stickytableheaders.js"],
dest: "dist/assets/javascripts/vendors.js"
}
},
cssmin: {
target: {
files: [{
expand: true,
cwd: "dist/assets/stylesheets",
src: ["*.css", "!*.min.css", "!application.css"],
dest: "dist/assets/stylesheets",
ext: ".min.css"
}]
}
},
uglify: {
vendors: {
files: {
'dist/assets/javascripts/vendors.min.js': ['dist/assets/javascripts/vendors.js']
}
},
algaworks: {
files: {
'dist/assets/javascripts/algaworks.min.js': ['dist/assets/javascripts/algaworks.js']
}
}
},
includes: {
build: {
src: ["*.html", "security/*.html", "errors/*.html", "components/*.html"],
dest: "dist/",
cwd: "sources/html",
options: {
flatten: true,
}
}
},
"http-server": {
dev: {
root: "dist",
port: 8282,
host: "127.0.0.1",
cache: 0,
showDir : true,
autoIndex: true,
ext: "html",
runInBackground: true,
openBrowser : false
}
},
copy: {
'javascripts': {
expand: true,
cwd: "sources/javascripts",
src: ["algaworks.js"],
dest: "dist/assets/javascripts/",
},
fonts: {
expand: true,
cwd: "assets/vendors/bower/",
src: ["font-awesome/fonts/**", "bootstrap/fonts/**"],
dest: "dist/assets/vendors/",
},
sweetalert: {
expand: true,
cwd: "assets/vendors/bower/sweetalert/dist/",
src: ["sweetalert-dev.js", "sweetalert.css"],
dest: "dist/assets/vendors/sweetalert/",
},
stickytableheaders: {
expand: true,
cwd: "assets/vendors/bower/StickyTableHeaders/js/",
src: ["jquery.stickytableheaders.js"],
dest: "dist/assets/vendors/stickytableheaders/",
},
jquery: {
expand: true,
cwd: "assets/vendors/bower/jquery/dist/",
src: ["jquery.js"],
dest: "dist/assets/vendors/jquery/",
},
bootstrap: {
expand: true,
cwd: "assets/vendors/bower/bootstrap/dist/js/",
src: ["bootstrap.js"],
dest: "dist/assets/vendors/bootstrap/",
},
images: {
expand: true,
cwd: "assets/",
src: ["images/**"],
dest: "dist/assets/",
},
},
watch: {
less: {
files: ["sources/less/**/*.less"],
tasks: ["less:algaworks", "less:application", "cssmin"],
options: {
nospawn: true
}
},
html: {
files: ["sources/html/**/*.html"],
tasks: ["includes"],
options: {
nospawn: true
}
},
javascript: {
files: ["sources/javascripts/**/*.js"],
tasks: ["copy:javascripts", "uglify:algaworks"],
options: {
nospawn: true
}
}
}
});
["contrib-less", "contrib-watch", "contrib-copy", "contrib-cssmin", "contrib-uglify",
"contrib-concat", "includes", "http-server"].forEach(function(plugin) {
grunt.loadNpmTasks("grunt-" + plugin);
});
grunt.registerTask("default", ["http-server", "copy", "less", "concat", "uglify",
"cssmin", "includes", "watch"]);
};