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.

177 lines (169 loc) 3.9 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 } } }, 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' ], indent: 2 } } }, less: { patternfly: { files: { 'dist/css/patternfly.css': 'less/patternfly.less', }, options: { paths: ['less/'], 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/'], 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: { 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', [ 'jekyll', 'less', 'cssmin', 'csscount', 'jslint', 'uglify' ]); grunt.registerTask('server', [ 'connect:server', 'watch' ]); grunt.registerTask('default', ['build']); };