UNPKG

patternfly

Version:

This reference implementation of PatternFly is based on [Bootstrap v3](http://getbootstrap.com/). Think of PatternFly as a "skinned" version of Bootstrap with additional components and customizations.

211 lines (203 loc) 5.79 kB
/*global module,require*/ var lrSnippet = require('connect-livereload')(); var mountFolder = function (connect, dir) { return connect.static(require('path').resolve(dir)); }; module.exports = function (grunt) { // load all grunt tasks require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); // configurable paths var projectConfig = { dist: 'dist', src: '' }; try { projectConfig.src = require('./bower.json').appPath || projectConfig.src; } catch (e) {} grunt.initConfig({ clean: { build: '<%= config.dist %>' }, config: projectConfig, connect: { server: { options: { hostname: '0.0.0.0', middleware: function (connect) { return [ lrSnippet, mountFolder(connect, projectConfig.src), mountFolder(connect, projectConfig.src + 'tests') ]; }, port: 9000 } } }, copy: { main: { files: [ // copy Bootstrap font files {expand: true, cwd: 'components/bootstrap/dist/fonts/', src: ['*'], dest: 'dist/fonts/'}, // copy Font Awesome font files {expand: true, cwd: 'components/font-awesome/fonts/', src: ['*'], dest: 'dist/fonts/'}, // copy Bootstrap less files {expand: true, cwd: 'components/bootstrap/less/', src: ['**'], dest: 'less/lib/bootstrap/'}, // copy Font Awesome less files {expand: true, cwd: 'components/font-awesome/less/', src: ['**'], dest: 'less/lib/font-awesome/'}, // copy Bootstrap-Combobox less files {expand: true, cwd: 'components/bootstrap-combobox/less/', src: ['**'], dest: 'less/lib/bootstrap-combobox/'}, // copy Bootstrap-Datepicker less files {expand: true, cwd: 'components/bootstrap-datepicker/less/', src: ['**'], dest: 'less/lib/bootstrap-datepicker/'}, // copy Bootstrap-Select less files {expand: true, cwd: 'components/bootstrap-select/less/', src: ['**'], dest: 'less/lib/bootstrap-select/'}, // Bootstrap Switch less files must be manually copied because of edits made to source less for strict-math purposes // manually copy 'components/bootstrap-switch/src/less/bootstrap3/' and make sure any math is wrapped with parentheses // copy Bootstrap Touchspin css file {expand: true, cwd: 'components/bootstrap-touchspin/dist/', src: ['jquery.bootstrap-touchspin.css'], dest: 'less/lib/bootstrap-touchspin/'}, // copy C3 css file {expand: true, cwd: 'components/c3/', src: ['c3.css'], dest: 'less/lib/c3/'}, ], }, }, csscount: { production: { src: [ 'dist/css/patternfly*.min.css' ], options: { maxSelectors: 4096 } } }, cssmin: { production: { files: [{ expand: true, cwd: 'dist/css', src: ['patternfly*.css', '!*.min.css'], dest: 'dist/css', ext: '.min.css', }], options: { sourceMap: true } } }, jekyll: { options: { src: 'tests-src' }, tests: { options: { dest: 'tests' } } }, jslint: { client: { src: [ 'dist/js/patternfly.js' ], directives: { // node environment node: false, // browser environment browser: true, // allow dangling underscores nomen: true, // allow todo statements todo: true, // allow unused parameters unparam: true, // add predefined libraries predef: [ 'jQuery', 'Event' ], indent: 2 } } }, less: { patternfly: { files: { 'dist/css/patternfly.css': 'less/patternfly.less', }, options: { paths: ['less/'], strictMath: true, sourceMap: true, outputSourceFiles: true, sourceMapFilename: 'dist/css/patternfly.css.map', sourceMapURL: 'patternfly.css.map' } }, patternflyAdditions: { files: { 'dist/css/patternfly-additions.css': 'less/patternfly-additions.less' }, options: { paths: ['less/'], strictMath: true, sourceMap: true, outputSourceFiles: true, sourceMapFilename: 'dist/css/patternfly-additions.css.map', sourceMapURL: 'patternfly-additions.css.map' } } }, uglify: { options: { mangle: false }, production: { files: { 'dist/js/patternfly.min.js': ['dist/js/patternfly.js'] } } }, watch: { copy: { files: 'components/**/*', tasks: ['copy'] }, jekyll: { files: 'tests-src/**/*', tasks: ['jekyll'] }, less: { files: 'less/*.less', tasks: ['less'] }, css: { files: ['dist/css/patternfly*.css', 'dist/css/!*.min.css'], tasks: ['cssmin', 'csscount'] }, js: { files: ['dist/js/*.js', '!dist/js/*.min.js'], tasks: ['jslint', 'uglify'] }, livereload: { files: ['dist/css/*.css', 'dist/js/*.js', 'tests/*.html', '!tests-src/*.html'] }, options: { livereload: true } } }); grunt.registerTask('build', [ 'copy', 'jekyll', 'less', 'cssmin', 'csscount', 'jslint', 'uglify' ]); grunt.registerTask('server', [ 'connect:server', 'watch' ]); grunt.registerTask('default', ['build']); };