aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Waldron waldron.rick@gmail.com <waldron.rick@gmail.com>2012-04-18 16:07:35 -0400
committerRick Waldron waldron.rick@gmail.com <waldron.rick@gmail.com>2012-04-18 16:07:35 -0400
commit1434b5b56756d02190afe552b626823c97b11a49 (patch)
tree00f26bc3c5904fc94760b324e64d4850a98cd203
parent9ebc27db54194c88fa7aed29a8c648c330300ac8 (diff)
downloadjquery-1434b5b56756d02190afe552b626823c97b11a49.tar.gz
jquery-1434b5b56756d02190afe552b626823c97b11a49.zip
Initial grunt implementation
-rw-r--r--.gitignore3
-rw-r--r--grunt.js159
-rw-r--r--package.json32
3 files changed, 193 insertions, 1 deletions
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: "<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." );
+ });
+};
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": []
+}