1 module.exports = function( grunt ) {
4 function readOptionalJSON( filepath ) {
7 data = grunt.file.readJSON( filepath );
12 var gzip = require( "gzip-js" ),
13 srcHintOptions = readOptionalJSON( "src/.jshintrc" );
15 // The concatenated file won't pass onevar
16 // But our modules can
17 delete srcHintOptions.onevar;
20 pkg: grunt.file.readJSON( "package.json" ),
21 dst: readOptionalJSON( "dist/.destination.json" ),
23 files: [ "dist/jquery.js", "dist/jquery.min.js" ],
26 gz: function( contents ) {
27 return gzip.zip( contents, {} ).length;
30 cache: "build/.sizecache.json"
35 dest: "dist/jquery.js",
41 ajax: [ "manipulation/_evalUrl", "event/ajax" ],
42 callbacks: [ "deferred" ],
43 css: [ "effects", "dimensions", "offset" ]
50 destPrefix: "external"
53 "sizzle/dist": "sizzle/dist",
54 "sizzle/LICENSE.txt": "sizzle/LICENSE.txt",
56 "npo/npo.js": "native-promise-only/npo.js",
58 "qunit/qunit.js": "qunitjs/qunit/qunit.js",
59 "qunit/qunit.css": "qunitjs/qunit/qunit.css",
60 "qunit/LICENSE.txt": "qunitjs/LICENSE.txt",
62 "requirejs/require.js": "requirejs/require.js",
64 "sinon/fake_timers.js": "sinon/lib/sinon/util/fake_timers.js",
65 "sinon/timers_ie.js": "sinon/lib/sinon/util/timers_ie.js",
66 "sinon/LICENSE.txt": "sinon/LICENSE"
72 src: [ "package.json" ]
82 "src/**/*.js", "Gruntfile.js", "test/**/*.js", "build/**/*.js"
89 src: "dist/jquery.js",
90 options: srcHintOptions
95 gruntfile: "Gruntfile.js",
97 // Right now, check only test helpers
98 test: [ "test/data/testrunner.js" ],
99 release: [ "build/*.js", "!build/release-notes.js" ],
100 tasks: "build/tasks/*.js"
124 files: [ "<%= jshint.all.src %>" ],
130 "dist/jquery.min.js": [ "dist/jquery.js" ]
133 preserveComments: false,
135 sourceMapName: "dist/jquery.min.map",
140 banner: "/*! jQuery Compat v<%= pkg.version %> | " +
141 "(c) jQuery Foundation | jquery.org/license */",
152 // Load grunt tasks from NPM packages
153 require( "load-grunt-tasks" )( grunt );
155 // Integrate jQuery specific tasks
156 grunt.loadTasks( "build/tasks" );
158 grunt.registerTask( "lint", [ "jsonlint", "jshint", "jscs" ] );
160 // Only defined for master at this time, but kept for cross-branch consistency
161 grunt.registerTask( "test_fast", [] );
163 // gh-2133 TODO: cherry-pick 76df9e4e389d80bff410a9e5f08b848de1d21a2f for promises-aplus-tests
164 grunt.registerTask( "test", [ "test_fast"/*, "promises-aplus-tests"*/ ] );
166 // Short list as a high frequency watch task
167 grunt.registerTask( "dev", [ "build:*:*", "lint", "uglify", "remove_map_comment", "dist:*" ] );
169 grunt.registerTask( "default", [ "dev", "test_fast", "compare_size" ] );