128 lines
4.0 KiB
JavaScript
128 lines
4.0 KiB
JavaScript
|
|
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');
|
||
|
|
};
|