UNPKG

tooltipster

Version:

A flexible and extensible jQuery plugin for modern tooltips.

185 lines (181 loc) 4.04 kB
module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-compress'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-string-replace'); grunt.loadNpmTasks('grunt-umd'); grunt.initConfig({ clean: { // clear all files dist: ["dist"], // this file is minified by the globbing pattern but is actually not needed // as sideTip's base style is included in the bundle file sideTip: ['dist/css/plugins/tooltipster/sideTip/tooltipster-sideTip.min.css'] }, compress: { dist: { files: [ { expand: true, ext: '.css.gz', extDot: 'last', src: ['dist/css/**/*.min.css'] }, { expand: true, ext: '.js.gz', extDot: 'last', src: ['dist/js/**/*.min.js'] } ], options: { mode: 'gzip', level: 9 } } }, concat: { // on the main and bundle files banner: { expand: true, src: ['dist/js/!(*.min).js'], options: { banner: '/**\n' + ' * tooltipster http://iamceege.github.io/tooltipster/\n' + ' * A rockin\' custom tooltip jQuery plugin\n' + ' * Developed by Caleb Jacob and Louis Ameline\n' + ' * MIT license\n' + ' */\n' } }, // on the main and bundle min files bannerMin: { expand: true, src: ['dist/js/*.min.js'], options: { banner: '/*! <%= pkg.name %> v<%= pkg.version %> */' } }, // bundle = main + sideTip bundle: { files: [ { dest: 'dist/css/tooltipster.bundle.css', src: ['dist/css/tooltipster.main.css', 'src/css/plugins/tooltipster/sideTip/tooltipster-sideTip.css'] }, { dest: 'dist/js/tooltipster.bundle.js', src: ['dist/js/tooltipster.main.js', 'src/js/plugins/tooltipster/sideTip/tooltipster-sideTip.js'] } ] }, UMDReturn: { expand: true, src: ['dist/js/**/!(*.min).js'], options: { footer: 'return $;' } } }, copy: { dist: { files: { 'dist/css/tooltipster.main.css': 'src/css/tooltipster.css', 'dist/js/tooltipster.main.js': 'src/js/tooltipster.js', 'dist/js/plugins/tooltipster/SVG/tooltipster-SVG.js': 'src/js/plugins/tooltipster/SVG/tooltipster-SVG.js' } } }, cssmin: { dist: { files: [ { dest: 'dist/css/tooltipster.main.min.css', src: 'dist/css/tooltipster.main.css' }, { dest: 'dist/css/tooltipster.bundle.min.css', src: 'dist/css/tooltipster.bundle.css' }, { cwd: 'src/css/plugins', dest: 'dist/css/plugins', expand: true, ext: '.min.css', extDot: 'last', src: ['**/*.css'] } ] } }, pkg: grunt.file.readJSON('package.json'), 'string-replace': { dist: { files: { 'dist/js/tooltipster.main.js': 'dist/js/tooltipster.main.js' }, options: { replacements: [{ pattern: 'semVer: \'\'', replacement: 'semVer: \'<%= pkg.version %>\'' }] } } }, uglify: { options: { compress: true, mangle: true, preserveComments: false }, dist: { files: [{ expand: true, ext: '.min.js', extDot: 'last', src: ['dist/js/**/!(*.min).js'] }] } }, umd: { // main and bundle dist: { options: { deps: { default: [{'jquery': '$'}], global: [{jQuery: '$'}] }, src: 'dist/js/**/!(*.min).js' } }, // SVG pluging svg: { options: { deps: { default: [{'tooltipster': '$'}], global: [{jQuery: '$'}] }, src: 'dist/js/plugins/tooltipster/SVG/tooltipster-SVG.js' } } } }); grunt.registerTask('default', [ // 'clean:dist', 'copy', 'string-replace', 'concat:bundle', 'concat:UMDReturn', 'umd', 'uglify', 'concat:banner', 'concat:bannerMin', 'cssmin', 'clean:sideTip', 'compress' ]); };