module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), // the package file to use uglify: { files: { expand: true, flatten: true, src: 'src/js/*.js', dest: 'dist', ext: '.min.js' } }, cssmin: { minify: { expand: true, cwd: 'src/css', src: ['*.css', '!*.min.css'], dest: 'dist', ext: '.min.css' } }, qunit: { all: ['tests/*.html'] }, watch: { files: ['tests/*.js', 'tests/*.html', 'src/**'], tasks: ['default'] }, copy: { main: { files: [ // copy dist to tests // { expand: true, cwd: 'dist', src: '*', dest: 'tests/lib/' }, { expand: true, cwd: 'src/css', src: '*', dest: 'tests/lib/' }, { expand: true, cwd: 'src/js', src: '*', dest: 'tests/lib/' }, // copy latest libs to tests { expand: true, cwd: 'public/bower_components/jquery', src: 'jquery.js', dest: 'tests/lib/' }, { expand: true, cwd: 'public/bower_components/bootstrap-datepicker/js', src: 'bootstrap-datepicker.js', dest: 'tests/lib/' }, // copy src to example { expand: true, cwd: 'src/css', src: '*', dest: 'public/css/' }, { expand: true, cwd: 'src/js', src: '*', dest: 'public/js/' } ] } } }); // load up your plugins grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-qunit'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-copy'); // register one or more task lists (you should ALWAYS have a "default" task list) grunt.registerTask('default', ['uglify','cssmin', 'copy', 'qunit', 'watch']); grunt.registerTask('test', 'qunit'); };