Ticket #6382: 6382.diff
File 6382.diff, 4.7 KB (added by , 9 years ago) |
---|
-
Gruntfile.js
1 1 /* jshint node:true */ 2 2 /* global module */ 3 3 module.exports = function( grunt ) { 4 var SOURCE_DIR = 'src/', 4 var path = require( 'path' ), 5 SOURCE_DIR = 'src/', 5 6 BUILD_DIR = 'build/', 6 7 7 8 BP_CSS = [ … … 18 19 ], 19 20 20 21 BP_EXCLUDED_MISC = [ 21 '!bp-forums/bbpress/**/*' 22 '!bp-forums/bbpress/**/*', 23 '!**/*.scss' 22 24 ]; 23 25 24 26 require( 'matchdep' ).filterDev( ['grunt-*', '!grunt-legacy-util'] ).forEach( grunt.loadNpmTasks ); … … 70 72 } 71 73 }, 72 74 sass: { 73 admin: {75 styles: { 74 76 cwd: SOURCE_DIR, 75 77 extDot: 'last', 76 78 expand: true, … … 92 94 ext: '-rtl.css', 93 95 src: BP_CSS.concat( BP_EXCLUDED_CSS, BP_EXCLUDED_MISC ), 94 96 options: { generateExactDuplicates: true } 97 }, 98 dynamic: { 99 expand: true, 100 cwd: SOURCE_DIR, 101 dest: SOURCE_DIR, 102 extDot: 'last', 103 ext: '-rtl.css', 104 src: [], 105 options: { generateExactDuplicates: true } 95 106 } 96 107 }, 108 97 109 checktextdomain: { 98 110 options: { 99 111 correct_domain: false, … … 146 158 dest: SOURCE_DIR 147 159 } 148 160 }, 161 149 162 clean: { 150 all: [ BUILD_DIR ] 163 all: [ BUILD_DIR ], 164 dynamic: { 165 cwd: BUILD_DIR, 166 dot: true, 167 expand: true, 168 src: [] 169 } 151 170 }, 152 171 copy: { 153 172 files: { … … 160 179 src: ['**', '!**/.{svn,git}/**'].concat( BP_EXCLUDED_MISC ) 161 180 } 162 181 ] 182 }, 183 dynamic: { 184 cwd: SOURCE_DIR, 185 dest: BUILD_DIR, 186 dot: true, 187 expand: true, 188 src: [] 163 189 } 164 190 }, 165 191 uglify: { 166 192 core: { 167 cwd: BUILD_DIR,193 cwd: SOURCE_DIR, 168 194 dest: BUILD_DIR, 169 extDot: 'last',170 195 expand: true, 171 196 ext: '.min.js', 172 197 src: BP_JS 173 198 }, 199 dynamic: { 200 cwd: SOURCE_DIR, 201 dest: BUILD_DIR, 202 expand: true, 203 ext: '.min.js', 204 src: [] 205 }, 174 206 options: { 175 207 banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' + 176 208 '<%= grunt.template.today("UTC:yyyy-mm-dd h:MM:ss TT Z") %> - ' + … … 243 275 options: { 244 276 tracUrl: 'buddypress.trac.wordpress.org' 245 277 } 278 }, 279 watch: { 280 all: { 281 files: [ 282 SOURCE_DIR + '**' 283 // Ignore version control directories. 284 // '!' + SOURCE_DIR + '**/.{svn,git}/**' 285 ], 286 tasks: [ 'clean:dynamic', 'copy:dynamic' ], 287 options: { 288 dot: true, 289 spawn: false 290 } 291 }, 292 config: { 293 files: 'Gruntfile.js', 294 tasks: ['jshint:grunt'], 295 options: { 296 spawn: false 297 } 298 }, 299 js: { 300 files: BP_JS.map( function( path ) { 301 return SOURCE_DIR + path; 302 } ), 303 tasks: [ 'uglify:dynamic' ], 304 options: { 305 spawn: false 306 } 307 }, 308 rtl: { 309 files: BP_CSS.map( function( path ) { 310 return SOURCE_DIR + path; 311 } ), 312 tasks: [ 'cssjanus:dynamic' ], 313 options: { 314 spawn: false 315 } 316 }, 317 styles: { 318 files: [ SOURCE_DIR + 'bp-templates/bp-legacy/css/*.scss' ], 319 tasks: [ 'sass:styles' ] 320 } 246 321 } 247 322 }); 248 323 324 // Styles task for Twenty* themes. 325 grunt.registerTask( 'styles', [ 'sass:styles' ] ); 249 326 250 327 /** 251 328 * Register tasks. … … 252 329 */ 253 330 grunt.registerTask( 'src', ['jsvalidate:src', 'jshint', 'scsslint', 'sass', 'cssjanus'] ); 254 331 grunt.registerTask( 'commit', ['src', 'checktextdomain', 'imagemin'] ); 255 grunt.registerTask( 'build', ['commit', 'clean:all', 'copy:files', 'uglify ', 'jsvalidate:build', 'cssmin', 'makepot', 'exec:bpdefault'] );332 grunt.registerTask( 'build', ['commit', 'clean:all', 'copy:files', 'uglify:core', 'jsvalidate:build', 'cssmin', 'makepot', 'exec:bpdefault'] ); 256 333 grunt.registerTask( 'release', ['build', 'exec:bbpress'] ); 257 334 258 335 // Testing tasks. … … 276 353 277 354 // Default task. 278 355 grunt.registerTask( 'default', ['src'] ); 356 357 358 /** 359 * Add a listener to the watch task. 360 * 361 * On `watch:all`, automatically updates the `copy:dynamic` and `clean:dynamic` configurations so that only the changed files are updated. 362 * On `watch:js`, automatically updates the `cssjanus:dynamic` configuration. 363 * On `watch:rtl`, automatically updates the `cssjanus:dynamic` configuration. 364 * On `watch:styles`, automatically updates the `cssjanus:dynamic` configuration. 365 */ 366 grunt.event.on( 'watch', function( action, filepath, target ) { 367 if ( target !== 'all' && target !== 'rtl' ) { 368 return; 369 } 370 371 var relativePath = path.relative( SOURCE_DIR, filepath ), 372 cleanSrc = ( action === 'deleted' ) ? [ relativePath ] : [], 373 copySrc = ( action === 'deleted' ) ? [] : [ relativePath ]; 374 375 grunt.config( ['clean', 'dynamic', 'src'], cleanSrc ); 376 grunt.config( ['copy', 'dynamic', 'src'], copySrc ); 377 grunt.config( ['cssjanus', 'dynamic', 'src'], copySrc ); 378 grunt.config( [ 'uglify', 'dynamic', 'src' ], copySrc ); 379 }); 279 380 };