| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- module.exports = function(grunt) {
- grunt.initConfig({
- // ---
- // Variables
- // ---
- pkg: grunt.file.readJSON('package.json'),
- dirs: {
- src: 'src',
- dist: 'dist',
- test: 'test'
- },
- banner: [
- '/*!',
- ' * BootstrapValidator (<%= pkg.homepage %>)',
- ' * <%= pkg.description %>',
- ' *',
- ' * @version v<%= pkg.version %>, built on <%= grunt.template.today("yyyy-mm-dd h:MM:ss TT") %>',
- ' * @author <%= pkg.author.url %>',
- ' * @copyright (c) 2013 - <%= grunt.template.today("yyyy") %> Nguyen Huu Phuoc',
- ' * @license Commercial: <%= pkg.homepage %>/license/',
- ' * Non-commercial: http://creativecommons.org/licenses/by-nc-nd/3.0/',
- ' */\n'
- ].join('\n'),
- // ---
- // Tasks
- // ---
- copy: {
- main: {
- files: [
- { cwd: '<%= dirs.src %>/css', src: '**', dest: '<%= dirs.dist %>/css', expand: true, flatten: true, filter: 'isFile' },
- { cwd: '<%= dirs.src %>/js/language', src: '**', dest: '<%= dirs.dist %>/js/language', expand: true, flatten: true, filter: 'isFile' }
- ]
- }
- },
- cssmin: {
- minify: { expand: true, cwd: '<%= dirs.src %>/css/', src: ['*.css'], dest: '<%= dirs.dist %>/css/', ext: '.min.css' },
- add_banner: {
- options: {
- stripBanners: true,
- banner: '<%= banner %>'
- },
- files: {
- '<%= dirs.dist %>/css/bootstrapValidator.min.css': ['<%= dirs.src %>/css/bootstrapValidator.css']
- }
- }
- },
- concat: {
- source: {
- options: {
- separator: ';',
- stripBanners: true,
- banner: '<%= banner %>'
- },
- src: ['<%= dirs.src %>/js/bootstrapValidator.js', '<%= dirs.src %>/js/validator/*.js'],
- dest: '<%= dirs.dist %>/js/bootstrapValidator.js'
- },
- test: {
- src: ['<%= dirs.test %>/spec/*.js', '<%= dirs.test %>/spec/validator/*.js'],
- dest: '<%= dirs.test %>/spec.js'
- }
- },
- uglify: {
- options: {
- banner: '<%= banner %>'
- },
- build: {
- src: ['<%= dirs.dist %>/js/bootstrapValidator.js'],
- dest: '<%= dirs.dist %>/js/bootstrapValidator.min.js'
- }
- },
- jshint: {
- all: [
- '<%= dirs.src %>/js/**/*.js'
- ],
- options: {
- browser: true,
- camelcase: true,
- curly: true,
- eqeqeq: true,
- eqnull: true,
- es3: true,
- expr: true,
- laxbreak: true, // Allow line breaking before && or ||
- loopfunc: true,
- newcap: true,
- noarg: true,
- onevar: true,
- sub: true,
- undef: true,
- white: true
- }
- },
- watch: {
- source: {
- files: ['<%= dirs.src %>/css/**', '<%= dirs.src %>/js/**'],
- tasks: ['build'],
- options: {
- spawn: false
- }
- },
- test: {
- files: ['<%= dirs.test %>/spec/**'],
- tasks: ['concat:test']
- }
- }
- });
- grunt.registerTask('default', 'build');
- grunt.registerTask('build', ['copy', 'cssmin', 'concat', 'uglify']);
- grunt.loadNpmTasks('grunt-contrib-concat');
- 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');
- };
|