| 'use strict'; |
| module.exports = function(grunt) { |
| |
| grunt.initConfig({ |
| jshint: { |
| options: { |
| jshintrc: '.jshintrc' |
| }, |
| all: [ |
| 'Gruntfile.js', |
| '!assets/js/*.js', |
| '!assets/js/plugins/*.js', |
| '!assets/js/scripts.min.js' |
| ] |
| }, |
| uglify: { |
| dist: { |
| files: { |
| 'assets/js/scripts.min.js': [ |
| 'assets/js/plugins/*.js', |
| 'assets/js/_*.js' |
| ] |
| } |
| } |
| }, |
| imagemin: { |
| dist: { |
| options: { |
| optimizationLevel: 7, |
| progressive: true |
| }, |
| files: [{ |
| expand: true, |
| cwd: 'images/', |
| src: '{,*/}*.{png,jpg,jpeg}', |
| dest: 'images/' |
| }] |
| } |
| }, |
| svgmin: { |
| dist: { |
| files: [{ |
| expand: true, |
| cwd: 'images/', |
| src: '{,*/}*.svg', |
| dest: 'images/' |
| }] |
| } |
| }, |
| watch: { |
| js: { |
| files: [ |
| '<%= jshint.all %>' |
| ], |
| tasks: ['jshint','uglify'] |
| } |
| }, |
| clean: { |
| dist: [ |
| 'assets/js/scripts.min.js' |
| ] |
| }, |
| sass: { |
| dist: { |
| files: { |
| 'assets/css/main.css': '_sass/main.scss', |
| '../blog/assets/css/main.css': '_sass/main.scss' |
| }, |
| options: { |
| style: 'compressed' |
| } |
| } |
| } |
| }); |
| |
| // 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-imagemin'); |
| grunt.loadNpmTasks('grunt-contrib-sass'); |
| grunt.loadNpmTasks('grunt-svgmin'); |
| |
| // Register tasks |
| grunt.registerTask('default', [ |
| 'clean', |
| 'uglify', |
| 'imagemin', |
| 'svgmin', |
| 'sass' |
| ]); |
| grunt.registerTask('dev', [ |
| 'watch' |
| ]); |
| }; |