'use strict'; module.exports = function(grunt) { grunt.initConfig({ jshint: { options: { jshintrc: '.jshintrc' }, all: [ 'Gruntfile.js', 'assets/js/*.js', '!assets/js/scripts.min.js' ] }, less: { dist: { files: { 'assets/css/main.min.css': [ 'assets/less/main.less' ] }, options: { compress: true, // LESS source map // To enable, set sourceMap to true and update sourceMapRootpath based on your install sourceMap: false, sourceMapFilename: 'assets/css/main.min.css.map', sourceMapRootpath: '/app/themes/roots/' } } }, uglify: { dist: { files: { 'assets/js/scripts.min.js': [ 'assets/vendor/bootstrap/js/transition.js', 'assets/vendor/bootstrap/js/alert.js', 'assets/vendor/bootstrap/js/button.js', 'assets/vendor/bootstrap/js/carousel.js', 'assets/vendor/bootstrap/js/collapse.js', 'assets/vendor/bootstrap/js/dropdown.js', 'assets/vendor/bootstrap/js/modal.js', 'assets/vendor/bootstrap/js/tooltip.js', 'assets/vendor/bootstrap/js/popover.js', 'assets/vendor/bootstrap/js/scrollspy.js', 'assets/vendor/bootstrap/js/tab.js', 'assets/vendor/bootstrap/js/affix.js', 'assets/js/plugins/*.js', 'assets/js/_*.js' ] }, options: { // JS source map: to enable, uncomment the lines below and update sourceMappingURL based on your install // sourceMap: 'assets/js/scripts.min.js.map', // sourceMappingURL: '/app/themes/roots/assets/js/scripts.min.js.map' } } }, version: { assets: { src: ['assets/css/main.min.css', 'assets/js/scripts.min.js'], dest: 'lib/scripts.php' } }, modernizr: { dist: { devFile: 'assets/vendor/modernizr/modernizr.js', outputFile: 'assets/js/vendor/modernizr.min.js', files: { 'src': [ ['assets/js/scripts.min.js'], ['assets/css/main.min.css'] ] }, uglify: true, parseFiles: true } }, watch: { less: { files: [ 'assets/less/*.less', 'assets/less/**/*.less' ], tasks: ['less', 'version'] }, js: { files: [ '<%= jshint.all %>' ], tasks: ['jshint', 'uglify', 'version'] }, livereload: { // Browser live reloading // https://github.com/gruntjs/grunt-contrib-watch#live-reloading options: { livereload: false }, files: [ 'assets/css/main.min.css', 'assets/js/scripts.min.js', 'templates/*.php', '*.php' ] } }, clean: { dist: [ 'assets/css/main.min.css', 'assets/js/scripts.min.js' ] } }); // Load tasks grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-wp-assets'); grunt.loadNpmTasks('grunt-modernizr'); // Register tasks grunt.registerTask('default', [ 'clean', 'less', 'uglify', 'version' ]); grunt.registerTask('dev', [ 'watch' ]); grunt.registerTask('build', [ 'default', 'modernizr' ]); };