-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
executable file
·109 lines (106 loc) · 2.97 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
module.exports = function(grunt) {
grunt.initConfig({
// Production Tasks
uglify: {
options: {
mangle: {
except: ['jQuery']
}
},
prod: {
files: {
'public/js/app.js': ['app/init.js','app/controllers/**.js','app/services/**.js','app/factories/**.js','app/directives/**.js'],
'public/js/vendor.js': ['vendor/js/**/*.js'],
}
}
},
// Dev Tasks
concat: {
app: {
src: ['app/init.js','app/controllers/**.js','app/services/**.js','app/factories/**.js','app/directives/**.js'],
dest: 'public/js/app.js',
},
vendor: {
src: ['vendor/js/**/*.js'],
dest: 'public/js/vendor.js',
},
vendorCSS: {
src: ['vendor/css/**/*.css'],
dest: 'public/styles/vendor.css',
},
},
jsbeautifier: {
files: ['app/**/*.js'],
options: {
js: {
braceStyle: "collapse",
breakChainedMethods: false,
e4x: false,
evalCode: false,
indentChar: " ",
indentLevel: 0,
indentSize: 2,
indentWithTabs: false,
jslintHappy: false,
keepArrayIndentation: false,
keepFunctionIndentation: false,
maxPreserveNewlines: 10,
preserveNewlines: true,
spaceBeforeConditional: true,
spaceInParen: false,
unescapeStrings: false,
wrapLineLength: 0
}
}
},
// Shared Tasks
watch: {
js: {
files: ['app/**/*.js'],
tasks: ['jsbeautifier', 'concat'],
options: {
livereload: true,
}
},
templates: {
files: ['app/index.html', 'app/templates/**/*.html'],
tasks: ['copy'],
options: {
livereload: true,
}
},
css: {
files: ['app/assets/scss/*.css'],
tasks: ['copy:css'],
options: {
livereload: true,
}
}
},
copy: {
index: {
src: 'app/index.html', // copy all files and subfolders
dest: 'public/index.html', // destination folder
},
templates: {
expand: true,
cwd: 'app/',
src: 'templates/*', // copy all files and subfolders
dest: 'public/', // destination folder
},
css: {
expand: true,
cwd: 'app/assets/scss',
src: '*.css', // copy all files and subfolders
dest: 'public/styles/', // destination folder
}
}
});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-jsbeautifier');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('default', ['jsbeautifier', 'concat', 'copy']);
grunt.registerTask('prod', ['uglify:prod', 'copy']);
};