192 lines
4.2 KiB
JavaScript
Executable File
192 lines
4.2 KiB
JavaScript
Executable File
/*jshint node:true*/
|
|
module.exports = function( grunt ) {
|
|
|
|
"use strict";
|
|
|
|
var banner,
|
|
umdStart,
|
|
umdMiddle,
|
|
umdEnd,
|
|
umdStandardDefine,
|
|
umdAdditionalDefine,
|
|
umdLocalizationDefine;
|
|
|
|
banner = "/*!\n" +
|
|
" * jQuery Validation Plugin v<%= pkg.version %>\n" +
|
|
" *\n" +
|
|
" * <%= pkg.homepage %>\n" +
|
|
" *\n" +
|
|
" * Copyright (c) <%= grunt.template.today('yyyy') %> <%= pkg.author.name %>\n" +
|
|
" * Released under the <%= _.map(pkg.licenses, 'type').join(', ') %> license\n" +
|
|
" */\n";
|
|
|
|
// Define UMD wrapper variables
|
|
|
|
umdStart = "(function( factory ) {\n" +
|
|
"\tif ( typeof define === \"function\" && define.amd ) {\n";
|
|
|
|
umdMiddle = "\t} else if (typeof module === \"object\" && module.exports) {\n" +
|
|
"\t\tmodule.exports = factory( require( \"jquery\" ) );\n" +
|
|
"\t} else {\n" +
|
|
"\t\tfactory( jQuery );\n" +
|
|
"\t}\n" +
|
|
"}(function( $ ) {\n\n";
|
|
|
|
umdEnd = "return $;" +
|
|
"\n}));";
|
|
|
|
umdStandardDefine = "\t\tdefine( [\"jquery\"], factory );\n";
|
|
umdAdditionalDefine = "\t\tdefine( [\"jquery\", \"./jquery.validate\"], factory );\n";
|
|
umdLocalizationDefine = "\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n";
|
|
|
|
grunt.initConfig( {
|
|
pkg: grunt.file.readJSON( "package.json" ),
|
|
concat: {
|
|
|
|
// Used to copy to dist folder
|
|
dist: {
|
|
options: {
|
|
banner: banner +
|
|
umdStart +
|
|
umdStandardDefine +
|
|
umdMiddle,
|
|
footer: umdEnd
|
|
},
|
|
files: {
|
|
"dist/jquery.validate.js": [ "src/core.js", "src/*.js" ]
|
|
}
|
|
},
|
|
extra: {
|
|
options: {
|
|
banner: banner +
|
|
umdStart +
|
|
umdAdditionalDefine +
|
|
umdMiddle,
|
|
footer: umdEnd
|
|
},
|
|
files: {
|
|
"dist/additional-methods.js": [ "src/additional/additional.js", "src/additional/*.js" ]
|
|
}
|
|
}
|
|
},
|
|
uglify: {
|
|
options: {
|
|
preserveComments: false,
|
|
banner: "/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - " +
|
|
"<%= grunt.template.today('m/d/yyyy') %>\n" +
|
|
" * <%= pkg.homepage %>\n" +
|
|
" * Copyright (c) <%= grunt.template.today('yyyy') %> <%= pkg.author.name %>;" +
|
|
" Licensed <%= _.map(pkg.licenses, 'type').join(', ') %> */\n"
|
|
},
|
|
dist: {
|
|
files: {
|
|
"dist/additional-methods.min.js": "dist/additional-methods.js",
|
|
"dist/jquery.validate.min.js": "dist/jquery.validate.js"
|
|
}
|
|
},
|
|
all: {
|
|
expand: true,
|
|
cwd: "dist/localization",
|
|
src: "**/*.js",
|
|
dest: "dist/localization",
|
|
ext: ".min.js"
|
|
}
|
|
},
|
|
compress: {
|
|
dist: {
|
|
options: {
|
|
mode: "zip",
|
|
level: 1,
|
|
archive: "dist/<%= pkg.name %>-<%= pkg.version %>.zip",
|
|
pretty: true
|
|
},
|
|
src: [
|
|
"changelog.txt",
|
|
"demo/**/*.*",
|
|
"dist/**/*.js",
|
|
"Gruntfile.js",
|
|
"lib/**/*.*",
|
|
"package.json",
|
|
"README.md",
|
|
"src/**/*.*",
|
|
"test/**/*.*"
|
|
]
|
|
}
|
|
},
|
|
qunit: {
|
|
files: "test/index.html"
|
|
},
|
|
jshint: {
|
|
options: {
|
|
jshintrc: true
|
|
},
|
|
core: {
|
|
src: "src/**/*.js"
|
|
},
|
|
test: {
|
|
src: [ "test/*.js", "test/additional/*.js" ]
|
|
},
|
|
grunt: {
|
|
src: "Gruntfile.js"
|
|
}
|
|
},
|
|
watch: {
|
|
options: {
|
|
atBegin: true
|
|
},
|
|
src: {
|
|
files: "<%= jshint.core.src %>",
|
|
tasks: [
|
|
"concat"
|
|
]
|
|
}
|
|
},
|
|
jscs: {
|
|
all: [ "<%= jshint.core.src %>", "<%= jshint.test.src %>", "<%= jshint.grunt.src %>" ]
|
|
},
|
|
copy: {
|
|
dist: {
|
|
options: {
|
|
|
|
// Append UMD wrapper
|
|
process: function( content ) {
|
|
return umdStart + umdLocalizationDefine + umdMiddle + content + umdEnd;
|
|
}
|
|
},
|
|
src: "src/localization/*",
|
|
dest: "dist/localization",
|
|
expand: true,
|
|
flatten: true,
|
|
filter: "isFile"
|
|
}
|
|
},
|
|
replace: {
|
|
dist: {
|
|
src: "dist/**/*.min.js",
|
|
overwrite: true,
|
|
replacements: [
|
|
{
|
|
from: "./jquery.validate",
|
|
to: "./jquery.validate.min"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
} );
|
|
|
|
grunt.loadNpmTasks( "grunt-contrib-jshint" );
|
|
grunt.loadNpmTasks( "grunt-contrib-qunit" );
|
|
grunt.loadNpmTasks( "grunt-contrib-uglify" );
|
|
grunt.loadNpmTasks( "grunt-contrib-concat" );
|
|
grunt.loadNpmTasks( "grunt-contrib-compress" );
|
|
grunt.loadNpmTasks( "grunt-contrib-watch" );
|
|
grunt.loadNpmTasks( "grunt-jscs" );
|
|
grunt.loadNpmTasks( "grunt-contrib-copy" );
|
|
grunt.loadNpmTasks( "grunt-text-replace" );
|
|
|
|
grunt.registerTask( "default", [ "concat", "copy", "jscs", "jshint", "qunit" ] );
|
|
grunt.registerTask( "release", [ "default", "uglify", "replace", "compress" ] );
|
|
grunt.registerTask( "start", [ "concat", "watch" ] );
|
|
|
|
};
|