]>
Commit | Line | Data |
---|---|---|
5ecdfcd0 TC |
1 | module.exports = function (grunt) { |
2 | require('load-grunt-tasks')(grunt); | |
3 | ||
4 | grunt.initConfig({ | |
5 | appDir: 'app/Resources/static', | |
a494c33e | 6 | buildDir: 'app/Resources/build', |
0471e905 | 7 | modulesDir: 'node_modules', |
a494c33e | 8 | releaseDir: 'web/bundles/wallabagcore', |
5ecdfcd0 TC |
9 | |
10 | postcss: { | |
11 | material: { | |
12 | options: { | |
13 | map: { | |
0743287f | 14 | inline: false, |
5ecdfcd0 TC |
15 | }, |
16 | ||
17 | processors: [ | |
18 | require('pixrem')(), | |
0743287f TC |
19 | require('autoprefixer')({ browsers: 'last 2 versions' }), |
20 | require('cssnano')(), | |
21 | ], | |
5ecdfcd0 TC |
22 | }, |
23 | src: '<%= buildDir %>/material.css', | |
a494c33e | 24 | dest: '<%= releaseDir %>/themes/material/css/style.min.css', |
5ecdfcd0 TC |
25 | }, |
26 | baggy: { | |
27 | options: { | |
28 | map: { | |
0743287f | 29 | inline: false, |
5ecdfcd0 TC |
30 | }, |
31 | ||
32 | processors: [ | |
33 | require('pixrem')(), | |
0743287f TC |
34 | require('autoprefixer')({ browsers: 'last 2 versions' }), |
35 | require('cssnano')(), | |
36 | ], | |
5ecdfcd0 TC |
37 | }, |
38 | src: '<%= buildDir %>/baggy.css', | |
a494c33e | 39 | dest: '<%= releaseDir %>/themes/baggy/css/style.min.css', |
0743287f | 40 | }, |
5ecdfcd0 TC |
41 | }, |
42 | concat: { | |
43 | options: { | |
0743287f | 44 | separator: ';', |
5ecdfcd0 | 45 | }, |
5ecdfcd0 TC |
46 | cssMaterial: { |
47 | src: [ | |
48 | 'node_modules/materialize-css/bin/materialize.css', | |
0743287f | 49 | '<%= appDir %>/themes/material/css/*.css', |
5ecdfcd0 | 50 | ], |
0743287f | 51 | dest: '<%= buildDir %>/material.css', |
5ecdfcd0 TC |
52 | }, |
53 | cssBaggy: { | |
54 | src: [ | |
0743287f | 55 | '<%= appDir %>/themes/baggy/css/*.css', |
5ecdfcd0 | 56 | ], |
0743287f TC |
57 | dest: '<%= buildDir %>/baggy.css', |
58 | }, | |
5ecdfcd0 TC |
59 | }, |
60 | browserify: { | |
c146f694 TC |
61 | dist: { |
62 | files: { | |
63 | '<%= buildDir %>/material.browser.js': ['<%= appDir %>/themes/material/js/init.js'], | |
64 | '<%= buildDir %>/baggy.browser.js': ['<%= appDir %>/themes/baggy/js/init.js'] | |
65 | } | |
66 | }, | |
67 | options: { | |
68 | sourceType: "module", | |
69 | transform: [ | |
70 | ["babelify", { | |
71 | presets: ["es2015"] | |
8f234d01 TC |
72 | }], ["browserify-shim", { |
73 | "jquery": { | |
74 | "exports": "$" | |
75 | }, | |
76 | "materialize": "materialize", | |
77 | "jquery-ui": { | |
78 | "depends": "jquery", | |
79 | "exports": null | |
80 | } | |
81 | }] | |
c146f694 TC |
82 | ], |
83 | browserifyOptions: { | |
84 | browser: { | |
85 | "jQuery": "./node_modules/jquery/dist/jquery.js", | |
8f234d01 TC |
86 | "jquery.tinydot": "./node_modules/jquery.tinydot/src/jquery.tinydot.js", |
87 | "jquery.ui": "./node_modules/jquery-ui-browserify/dist/jquery-ui.js" | |
c146f694 TC |
88 | } |
89 | } | |
90 | } | |
91 | ||
5ecdfcd0 TC |
92 | }, |
93 | uglify: { | |
94 | material: { | |
95 | files: { | |
a494c33e | 96 | '<%= releaseDir %>/themes/material/js/material.min.js': |
0743287f | 97 | ['<%= buildDir %>/material.browser.js'], |
5ecdfcd0 TC |
98 | }, |
99 | options: { | |
100 | sourceMap: true, | |
101 | }, | |
102 | }, | |
103 | baggy: { | |
104 | files: { | |
a494c33e | 105 | '<%= releaseDir %>/themes/baggy/js/baggy.min.js': |
0743287f | 106 | ['<%= buildDir %>/baggy.browser.js'], |
5ecdfcd0 TC |
107 | }, |
108 | options: { | |
109 | sourceMap: true, | |
110 | }, | |
111 | }, | |
112 | }, | |
113 | copy: { | |
114 | pickerjs: { | |
115 | expand: true, | |
0471e905 | 116 | cwd: '<%= modulesDir %>/pickadate/lib', |
5ecdfcd0 | 117 | src: 'picker.js', |
0743287f | 118 | dest: '<%= buildDir %>', |
5ecdfcd0 TC |
119 | }, |
120 | annotator: { | |
121 | expand: true, | |
0471e905 | 122 | cwd: '<%= modulesDir %>/annotator/pkg', |
5ecdfcd0 | 123 | src: 'annotator.min.js', |
0743287f TC |
124 | dest: '<%= buildDir %>/themes/_global/js/', |
125 | }, | |
5ecdfcd0 TC |
126 | }, |
127 | symlink: { | |
128 | baggyfonts: { | |
129 | files: [ | |
130 | { | |
131 | expand: true, | |
132 | overwrite: true, | |
0471e905 TC |
133 | cwd: '<%= modulesDir %>/icomoon-free-npm/Font', |
134 | src: 'IcoMoon-Free.ttf', | |
a494c33e | 135 | dest: '<%= releaseDir %>/themes/baggy/fonts/', |
0471e905 TC |
136 | }, |
137 | { | |
138 | expand: true, | |
139 | overwrite: true, | |
140 | cwd: '<%= modulesDir %>/ptsans-npm-webfont/fonts', | |
a494c33e TC |
141 | src: 'ptsansbold.woff', |
142 | dest: '<%= releaseDir %>/themes/baggy/fonts/', | |
5ecdfcd0 TC |
143 | }, |
144 | { | |
145 | expand: true, | |
146 | overwrite: true, | |
0471e905 | 147 | cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/', |
a494c33e TC |
148 | src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'], |
149 | dest: '<%= releaseDir %>/themes/baggy/fonts/', | |
0743287f TC |
150 | }, |
151 | ], | |
5ecdfcd0 TC |
152 | }, |
153 | materialfonts: { | |
154 | files: [ | |
155 | { | |
156 | expand: true, | |
157 | overwrite: true, | |
0471e905 TC |
158 | cwd: '<%= modulesDir %>/icomoon-free-npm/Font', |
159 | src: 'IcoMoon-Free.ttf', | |
a494c33e | 160 | dest: '<%= releaseDir %>/themes/material/fonts', |
5ecdfcd0 TC |
161 | }, |
162 | { | |
163 | expand: true, | |
164 | overwrite: true, | |
0471e905 | 165 | cwd: '<%= modulesDir %>/roboto-fontface/fonts/Roboto', |
0743287f | 166 | src: '*', |
a494c33e | 167 | dest: '<%= releaseDir %>/themes/material/font/roboto', |
5ecdfcd0 TC |
168 | }, |
169 | { | |
170 | expand: true, | |
171 | overwrite: true, | |
0471e905 | 172 | cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/', |
a494c33e TC |
173 | src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'], |
174 | dest: '<%= releaseDir %>/themes/material/fonts/', | |
0743287f TC |
175 | }, |
176 | ], | |
5ecdfcd0 TC |
177 | }, |
178 | pics: { | |
179 | files: [ | |
180 | { | |
181 | expand: true, | |
182 | overwrite: true, | |
183 | cwd: '<%= appDir %>/themes/_global/', | |
184 | src: 'img', | |
a494c33e | 185 | dest: '<%= releaseDir %>/themes/_global/', |
0743287f TC |
186 | }, |
187 | ], | |
188 | }, | |
5ecdfcd0 TC |
189 | }, |
190 | clean: { | |
191 | css: { | |
0743287f | 192 | src: ['<%= buildDir %>/**/*.css'], |
5ecdfcd0 TC |
193 | }, |
194 | js: { | |
0743287f | 195 | src: ['<%= buildDir %>/**/*.js', '<%= buildDir %>/**/*.map'], |
5ecdfcd0 TC |
196 | }, |
197 | all: { | |
0743287f TC |
198 | src: ['./<%= buildDir %>'], |
199 | }, | |
a494c33e TC |
200 | release: { |
201 | src: ['./<%= releaseDir %>/*'], | |
202 | } | |
0743287f | 203 | }, |
5ecdfcd0 TC |
204 | }); |
205 | ||
206 | grunt.registerTask( | |
207 | 'fonts', | |
208 | 'Install fonts', | |
209 | ['symlink:baggyfonts', 'symlink:materialfonts'] | |
210 | ); | |
211 | ||
212 | grunt.registerTask( | |
213 | 'js', | |
214 | 'Build and install js files', | |
c146f694 | 215 | ['clean:js', 'copy:pickerjs', 'browserify', 'uglify'] |
5ecdfcd0 TC |
216 | ); |
217 | ||
218 | grunt.registerTask( | |
219 | 'default', | |
220 | 'Build and install everything', | |
221 | ['clean', 'copy:pickerjs', 'concat', 'browserify', 'uglify', 'postcss', 'symlink'] | |
222 | ); | |
223 | ||
224 | grunt.registerTask( | |
225 | 'css', | |
226 | 'Compiles the stylesheets.', | |
227 | ['clean:css', 'concat:cssMaterial', 'concat:cssBaggy', 'postcss'] | |
228 | ); | |
0743287f | 229 | }; |