File: Gruntfile.js

Recommend this page to a friend!
  Classes of Stefan Gabos  >  Zebra Date Picker  >  Gruntfile.js  >  Download  
File: Gruntfile.js
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: Zebra Date Picker
jQuery plugin to let the user pick dates
Author: By
Last change: Updated packages
Date: 10 months ago
Size: 11,763 bytes
 

Contents

Class file image Download
'use strict'; module.exports = function(grunt) { // show time spent on each task require('time-grunt')(grunt); // required for sass const sass = require('node-sass'); grunt.initConfig({ // load packages.json pkg: grunt.file.readJSON('package.json'), /*************************************************************************************************************** * NOTIFY * https://github.com/dylang/grunt-notify **************************************************************************************************************/ 'notify': { done: { options: { title: 'Grunt ', message: 'All tasks were successfully completed!' } } }, /*************************************************************************************************************** * SASS * https://www.npmjs.org/package/grunt-sass **************************************************************************************************************/ 'sass': { expanded: { options: { implementation: sass, outputStyle: 'expanded', indentWidth: 4 }, files: { 'dist/css/bootstrap/zebra_datepicker.css': 'src/css/bootstrap/zebra_datepicker.scss', 'dist/css/default/zebra_datepicker.css': 'src/css/default/zebra_datepicker.scss', 'dist/css/metallic/zebra_datepicker.css': 'src/css/metallic/zebra_datepicker.scss' } }, minified: { options: { implementation: sass, outputStyle: 'compressed' }, files: { 'dist/css/bootstrap/zebra_datepicker.min.css': 'src/css/bootstrap/zebra_datepicker.scss', 'dist/css/default/zebra_datepicker.min.css': 'src/css/default/zebra_datepicker.scss', 'dist/css/metallic/zebra_datepicker.min.css': 'src/css/metallic/zebra_datepicker.scss' } } }, /*************************************************************************************************************** * CSSMIN * https://github.com/gruntjs/grunt-contrib-cssmin **************************************************************************************************************/ 'cssmin': { beutify: { options: { compatibility: { properties: { ieBangHack: true, ieFilters: true, iePrefixHack: true, ieSuffixHack: true }, selectors: { ie7Hack: true } }, format: { breaks: { afterAtRule: true, afterBlockBegins: true, afterBlockEnds: true, afterComment: true, afterProperty: true, afterRuleBegins: true, afterRuleEnds: true, beforeBlockEnds: true, betweenSelectors: true }, indentBy: 4, indentWith: 'space', spaces: { aroundSelectorRelation: true, beforeBlockBegins: true, beforeValue: true } }, level: 2 }, files: { 'dist/css/bootstrap/zebra_datepicker.css': 'dist/css/bootstrap/zebra_datepicker.css', 'dist/css/default/zebra_datepicker.css': 'dist/css/default/zebra_datepicker.css', 'dist/css/metallic/zebra_datepicker.css': 'dist/css/metallic/zebra_datepicker.css' } }, minify: { options: { compatibility: { properties: { ieBangHack: true, ieFilters: true, iePrefixHack: true, ieSuffixHack: true }, selectors: { ie7Hack: true } }, level: 2 }, files: { 'dist/css/bootstrap/zebra_datepicker.min.css': 'dist/css/bootstrap/zebra_datepicker.min.css', 'dist/css/default/zebra_datepicker.min.css': 'dist/css/default/zebra_datepicker.min.css', 'dist/css/metallic/zebra_datepicker.min.css': 'dist/css/metallic/zebra_datepicker.min.css' } } }, /*************************************************************************************************************** * ESLINT * http://eslint.org/docs/rules/ **************************************************************************************************************/ 'eslint' : { options: { overrideConfigFile: 'eslint.json' }, src: ['src/zebra_datepicker.src.js'] }, /*************************************************************************************************************** * JSHINT * https://npmjs.org/package/grunt-contrib-jshint **************************************************************************************************************/ 'jshint': { options: { strict: true, // requires all functions to run in ECMAScript 5's strict mode asi: false, // suppresses warnings about missing semicolons globals: { // white list of global variables that are not formally defined in the source code '$': true, 'console': true, 'jQuery': true }, browser: true, // defines globals exposed by modern browsers (like `document` and `navigator`) bitwise: true, // prohibits the use of bitwise operators such as ^ (XOR), | (OR) and others curly: false, // whether to always put curly braces around blocks in loops and conditionals eqeqeq: true, // this options prohibits the use of == and != in favor of === and !== freeze: true, // this options prohibits overwriting prototypes of native objects such as Array, Date and so on scripturl: true, // allow use of scripts nonew: true, // this option prohibits the use of constructor functions without assigning them to a variable loopfunc: true, // allow functions to be defined inside loops undef: true // this option prohibits the use of explicitly undeclared variables }, src: ['src/zebra_datepicker.src.js'] }, /*************************************************************************************************************** * UGLIFY * https://npmjs.org/package/grunt-contrib-uglify **************************************************************************************************************/ 'uglify': { options: { compress: true, mangle: true, beautify: false, output: { ie8: true } }, build: { src: 'src/zebra_datepicker.src.js', dest: 'dist/zebra_datepicker.min.js' } }, /*************************************************************************************************************** * COPY * https://github.com/gruntjs/grunt-contrib-copy **************************************************************************************************************/ 'copy': { js: { files: [ { src: 'src/zebra_datepicker.src.js', dest: 'dist/zebra_datepicker.src.js' } ] }, css: { files: [ { expand: true, cwd: 'src/css/bootstrap/', src: ['*.png', '*.scss'], dest: 'dist/css/bootstrap/' }, { expand: true, cwd: 'src/css/default/', src: ['*.png', '*.scss'], dest: 'dist/css/default/' }, { expand: true, cwd: 'src/css/metallic/', src: ['*.png', '*.scss'], dest: 'dist/css/metallic/' } ] } }, /*************************************************************************************************************** * INCLUDES * https://github.com/vanetix/grunt-includes **************************************************************************************************************/ 'includes': { css: { options: { includeRegexp: /\@import \'(.*?)\'\;/, includePath: 'src/css/default/', filenameSuffix: '.scss', silent: true }, files: [ { cwd: 'dist/css/bootstrap', src: '*.scss', dest: 'dist/css/bootstrap/zebra_datepicker.scss' }, { cwd: 'dist/css/default', src: '*.scss', dest: 'dist/css/default/zebra_datepicker.scss' }, { cwd: 'dist/css/metallic', src: '*.scss', dest: 'dist/css/metallic/zebra_datepicker.scss' } ] } }, /*************************************************************************************************************** * WATCH * https://npmjs.org/package/grunt-contrib-watch **************************************************************************************************************/ 'watch': { js: { files: ['src/zebra_datepicker.src.js'], tasks: ['newer:eslint', 'newer:jshint', 'newer:uglify', 'copy:js', 'notify:done'], options: { livereload: true } }, css: { files: ['src/css/**/*.scss'], tasks: ['sass', 'cssmin', 'copy:css', 'includes:css', 'notify:done'], options: { livereload: true } } } }); // register plugins grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-eslint'); grunt.loadNpmTasks('grunt-includes'); grunt.loadNpmTasks('grunt-newer'); grunt.loadNpmTasks('grunt-notify'); grunt.loadNpmTasks('grunt-sass'); grunt.registerTask('default', ['sass', 'cssmin', 'eslint', 'jshint', 'uglify', 'copy', 'includes:css', 'watch']); };