aboutsummaryrefslogtreecommitdiffstats
path: root/grunt.js
diff options
context:
space:
mode:
Diffstat (limited to 'grunt.js')
-rw-r--r--grunt.js159
1 files changed, 159 insertions, 0 deletions
diff --git a/grunt.js b/grunt.js
new file mode 100644
index 000000000..759b43c54
--- /dev/null
+++ b/grunt.js
@@ -0,0 +1,159 @@
+/*global config:true, task:true*/
+module.exports = function( grunt ) {
+
+ var task = grunt.task;
+ var file = grunt.file;
+ var utils = grunt.utils;
+ var log = grunt.log;
+ var verbose = grunt.verbose;
+ var fail = grunt.fail;
+ var option = grunt.option;
+ var config = grunt.config;
+ var template = grunt.template;
+
+ grunt.initConfig({
+ pkg: "<json:package.json>",
+ meta: {
+ banner: "/*! jQuery v@<%= pkg.version %> jquery.com | jquery.org/license */"
+ },
+ compare_size: {
+ files: [
+ "dist/jquery.js",
+ "dist/jquery.min.js"
+ ]
+ },
+ selector: {
+ "src/selector.js": [
+ "src/sizzle-jquery.js",
+ "src/sizzle/sizzle.js"
+ ]
+ },
+ build: {
+ "dist/jquery.js": [
+ "src/intro.js",
+ "src/core.js",
+ "src/callbacks.js",
+ "src/deferred.js",
+ "src/support.js",
+ "src/data.js",
+ "src/queue.js",
+ "src/attributes.js",
+ "src/event.js",
+ "src/selector.js",
+ "src/traversing.js",
+ "src/manipulation.js",
+ "src/css.js",
+ "src/ajax.js",
+ "src/ajax/jsonp.js",
+ "src/ajax/script.js",
+ "src/ajax/xhr.js",
+ "src/effects.js",
+ "src/offset.js",
+ "src/dimensions.js",
+ "src/exports.js",
+ "src/outro.js"
+ ]
+ },
+ min: {
+ "dist/jquery.min.js": [ "<banner>", "dist/jquery.js" ]
+ },
+ lint: {
+ files: [ "grunt.js", "dist/jquery.js" ]
+ },
+ watch: {
+ files: "<config:lint.files>",
+ tasks: "concat lint"
+ },
+ jshint: {
+ options: {
+ evil: true,
+ browser: true,
+ wsh: true,
+ eqnull: true,
+ expr: true,
+ curly: true,
+ trailing: true,
+ undef: true,
+ smarttabs: true,
+ predef: [
+ "define",
+ "DOMParser",
+ "WebKitPoint",
+ "__dirname"
+ ],
+ maxerr: 100
+ },
+ globals: {
+ jQuery: true,
+ global: true,
+ module: true,
+ exports: true,
+ require: true,
+ file: true,
+ log: true,
+ console: true
+ }
+ },
+ uglify: {}
+ });
+
+ // Default grunt.
+ grunt.registerTask( "default", "selector build lint min compare_size" );
+
+ grunt.loadNpmTasks("grunt-compare-size");
+
+ // Build src/selector.js
+ grunt.registerMultiTask( "selector", "Build src/selector.js", function() {
+
+ var name = this.file.dest,
+ files = this.file.src,
+ sizzle = {
+ api: file.read( files[0] ),
+ src: file.read( files[1] )
+ },
+ compiled;
+
+ // sizzle-jquery.js -> sizzle after "EXPOSE", replace window.Sizzle
+ compiled = sizzle.src.replace( "window.Sizzle = Sizzle;", sizzle.api );
+ verbose.write("Injected sizzle-jquery.js into sizzle.js");
+
+ // Write concatenated source to file
+ file.write( name, compiled );
+
+ // Fail task if errors were logged.
+ if ( this.errorCount ) {
+ return false;
+ }
+
+ // Otherwise, print a success message.
+ log.writeln( "File '" + name + "' created." );
+ });
+
+
+ // Special concat/build task to handle various jQuery build requirements
+ grunt.registerMultiTask( "build", "Concatenate source, embed date/version", function() {
+ // Concat specified files.
+ var compiled = "",
+ name = this.file.dest;
+
+ this.file.src.forEach(function( filepath ) {
+ compiled += file.read( filepath ).replace( /.function..jQuery...\{/g, "" ).replace( /\}...jQuery..;/g, "" );
+ });
+
+ // Embed Date
+ // Embed Version
+ compiled = compiled.replace( "@DATE", new Date() )
+ .replace( "@VERSION", config("pkg.version") );
+
+ // Write concatenated source to file
+ file.write( name, compiled );
+
+ // Fail task if errors were logged.
+ if ( this.errorCount ) {
+ return false;
+ }
+
+ // Otherwise, print a success message.
+ log.writeln( "File '" + name + "' created." );
+ });
+};