forked from opendata-ee/ckanext-dgu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
149 lines (144 loc) · 4.89 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
module.exports = function(grunt) {
var pkg = grunt.file.readJSON('package.json');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-coffee');
// Change relative directory
grunt.file.setBase('ckanext/dgu/theme/');
// Project configuration.
grunt.initConfig({
pkg: pkg,
uglify: {
//options: { beautify: true, mangle: false, compress: false, }, // <-- DEBUG MODE
app: {
files: {
'public/scripts/dgu-ckan-application.min.js' : [ 'src/scripts/dgu.js', 'src/scripts/dgu-basket.js', 'src/scripts/dgu-autocomplete.js' ],
'public/scripts/dgu-dataset-map.min.js' : 'src/scripts/dgu-dataset-map.js',
'public/scripts/dgu-history.min.js' : 'src/scripts/dgu-history.js',
'public/scripts/dgu-package-form.min.js' : 'src/scripts/dgu-package-form.js',
'public/scripts/dgu-package.min.js' : 'src/scripts/dgu-package.js',
'public/scripts/dgu-publisher-forms.min.js' : 'src/scripts/dgu-publisher-forms.js',
'public/scripts/dgu-publisher-index.min.js' : 'src/scripts/dgu-publisher-index.js',
'public/scripts/dgu-publisher-read.min.js' : 'src/scripts/dgu-publisher-read.js',
},
},
vendor: {
files: {
'public/scripts/vendor/jquery.tablesorter.min.js' : 'src/scripts/vendor/jquery.tablesorter.js',
'public/scripts/vendor/jquery.jstree.min.js' : 'src/scripts/vendor/jquery.jstree.js',
'public/scripts/vendor/jquery-ui-1.9.2.custom.datepicker.min.js' : 'src/scripts/vendor/jquery-ui-1.9.2.custom.datepicker.js',
'public/scripts/vendor/d3.v3.min.js' : 'src/scripts/vendor/d3.v3.js',
'public/scripts/vendor/d3.sankey.min.js' : 'src/scripts/vendor/d3.sankey.js',
},
},
recline: {
src: [
'src/scripts/recline_pack/underscore-1.1.6.js',
'src/scripts/recline_pack/backbone-0.5.1.js',
'src/scripts/recline_pack/jquery.mustache.js',
'src/scripts/recline_pack/jquery.flot-0.7.js',
'src/scripts/recline_pack/recline.js',
'src/scripts/recline_pack/dgu-recline-integration.js',
],
dest: 'public/scripts/dgu-recline-pack.min.js',
},
},
less: {
options: {
yuicompress: true
},
build: {
src: 'src/css/dgu-ckan.less',
dest: 'public/css/dgu-ckan.min.css'
},
viz: {
src: 'src/css/dgu-viz.less',
dest: 'public/css/dgu-viz.min.css',
},
datepicker: {
src: 'src/css/jquery-ui-1.9.2.custom.datepicker.css',
dest: 'public/css/jquery-ui-1.9.2.custom.datepicker.min.css',
},
recline: {
src: [
'src/css/recline_pack/recline-data-explorer.min.css',
'src/css/recline_pack/recline-grid.css',
'src/css/recline_pack/dgu-recline-integration.css',
],
dest: 'public/css/dgu-recline-pack.min.css'
}
},
watch: {
json: {
files: 'src/scripts/json/**/*.json',
tasks: 'copy:json'
},
styles: {
files: 'src/css/**/*',
tasks: 'styles'
},
scripts: {
files: 'src/scripts/dgu*.js',
tasks: 'uglify:app'
},
coffee: {
files: 'src/scripts/**/*.coffee',
tasks: 'coffee'
},
},
imagemin: {
build: {
options: {
optimizationLevel: 3
},
files: [
{
expand: true,
src: '**/*.{jpg,png}',
cwd: 'src/images/',
dest: 'public/images/'
}
]
},
},
copy: {
images: {
expand: true,
cwd: 'src/images/',
src: '**/*.gif',
dest: 'public/images/',
},
json: {
expand: true,
cwd: 'src/scripts/json/',
src: '**/*.json',
dest: 'public/scripts/json/',
},
},
coffee: {
viz_pack: {
src: [
'src/scripts/viz_pack/viz_lib/*.coffee',
'src/scripts/viz_pack/dgu-viz.coffee',
],
dest: 'public/scripts/dgu-viz-pack.min.js'
}
},
timestamp: {
build: {
dest: 'timestamp.py'
}
}
});
grunt.registerMultiTask('timestamp', 'Write timestamp to a file', function(myName, myTargets) {
grunt.file.write(this.files[0].dest, 'asset_build_timestamp='+Date.now());
});
// Default task(s).
grunt.registerTask('styles', ['less','timestamp']);
grunt.registerTask('scripts', ['uglify:app','timestamp','coffee']);
grunt.registerTask('images', ['imagemin','copy:images','timestamp']);
grunt.registerTask('default', ['uglify','coffee','less','imagemin','copy','timestamp']);
};