From eadc79e066de9a59a005202223527ce290879c2a Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Sat, 24 Aug 2013 17:13:07 -0400 Subject: [PATCH] Add Grunt build script --- .jshintrc | 20 + Gruntfile.js | 107 + _includes/head.html | 2 +- _includes/scripts.html | 2 +- assets/css/main.css | 3664 ----------------- assets/css/main.min.css | 25 + assets/js/_main.js | 26 + assets/js/main.js | 1114 ----- .../js/{vendor => plugins}/jquery.dlmenu.js | 0 .../js/{vendor => plugins}/jquery.fitvids.js | 0 assets/js/{vendor => plugins}/respond.js | 0 assets/js/scripts.min.js | 1 + package.json | 25 + 13 files changed, 206 insertions(+), 4780 deletions(-) create mode 100644 .jshintrc create mode 100644 Gruntfile.js delete mode 100644 assets/css/main.css create mode 100644 assets/css/main.min.css create mode 100644 assets/js/_main.js delete mode 100644 assets/js/main.js rename assets/js/{vendor => plugins}/jquery.dlmenu.js (100%) rename assets/js/{vendor => plugins}/jquery.fitvids.js (100%) rename assets/js/{vendor => plugins}/respond.js (100%) create mode 100644 assets/js/scripts.min.js create mode 100644 package.json diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..c7fe066 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,20 @@ +{ + "bitwise": true, + "browser": true, + "curly": true, + "eqeqeq": true, + "eqnull": true, + "es5": false, + "esnext": true, + "immed": true, + "jquery": true, + "latedef": true, + "newcap": true, + "noarg": true, + "node": true, + "strict": false, + "trailing": false, + "undef": true, + "multistr": true, + "expr": true +} \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..52c10e3 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,107 @@ +'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' + ] + }, + recess: { + dist: { + options: { + compile: true, + compress: true + }, + files: { + 'assets/css/main.min.css': [ + 'assets/less/main.less' + ] + } + } + }, + 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: { + less: { + files: [ + 'assets/less/*.less', + 'assets/less/bootstrap/*.less' + ], + tasks: ['recess'] + }, + js: { + files: [ + '<%= jshint.all %>' + ], + tasks: ['jshint','uglify'] + } + }, + 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-recess'); + grunt.loadNpmTasks('grunt-contrib-imagemin'); + grunt.loadNpmTasks('grunt-svgmin'); + + // Register tasks + grunt.registerTask('default', [ + 'clean', + 'recess', + 'uglify', + 'imagemin', + 'svgmin' + ]); + grunt.registerTask('dev', [ + 'watch' + ]); + +}; \ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html index 350c998..bb238e4 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -34,7 +34,7 @@ - + diff --git a/_includes/scripts.html b/_includes/scripts.html index 2c187c1..9c2c7d3 100644 --- a/_includes/scripts.html +++ b/_includes/scripts.html @@ -1,6 +1,6 @@ - + {% if site.google_analytics %}