From: Rick Waldron waldron.rick@gmail.com Date: Wed, 18 Apr 2012 20:07:35 +0000 (-0400) Subject: Initial grunt implementation X-Git-Tag: 1.8b1~199 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1434b5b56756d02190afe552b626823c97b11a49;p=jquery.git Initial grunt implementation --- diff --git a/.gitignore b/.gitignore index b3c047250..ce1cd6ecc 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ dist *.patch /*.html .DS_Store -build/.sizecache.json +dist/.sizecache.json +node_modules 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: "", + 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": [ "", "dist/jquery.js" ] + }, + lint: { + files: [ "grunt.js", "dist/jquery.js" ] + }, + watch: { + 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." ); + }); +}; diff --git a/package.json b/package.json new file mode 100644 index 000000000..55d96b922 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "jquery", + "title": "jQuery", + "description": "New Wave JavaScript", + "version": "1.8.0", + "homepage": "http://jquery.com", + "author": { + "name": "John Resig" + }, + "repository": { + "type": "git", + "url": "https://github.com/jquery/jquery.git" + }, + "bugs": { + "url": "http://bugs.jquery.com" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://jquery.com/blob/master/MIT-LICENSE.txt" + }, + { + "type": "GPL", + "url": "http://jquery.com/blob/master/GPL-LICENSE.txt" + } + ], + "dependencies": {}, + "devDependencies": { + "grunt-compare-size": ">=0.1.0" + }, + "keywords": [] +}