mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
7deee6af72
grunt-contrib-jshint 0.7.1 allows the jshintrc option to be set to true to have it read the appropriate config file based on the file being checked. The only place where we can’t use it is the check for dist/jquery.js that has the onevar option removed. Fixes #14504
150 lines
3.2 KiB
JavaScript
150 lines
3.2 KiB
JavaScript
module.exports = function( grunt ) {
|
|
"use strict";
|
|
|
|
function readOptionalJSON( filepath ) {
|
|
var data = {};
|
|
try {
|
|
data = grunt.file.readJSON( filepath );
|
|
} catch ( e ) {}
|
|
return data;
|
|
}
|
|
|
|
var gzip = require( "gzip-js" ),
|
|
srcHintOptions = readOptionalJSON( "src/.jshintrc" );
|
|
|
|
// The concatenated file won't pass onevar
|
|
// But our modules can
|
|
delete srcHintOptions.onevar;
|
|
|
|
grunt.initConfig({
|
|
pkg: grunt.file.readJSON( "package.json" ),
|
|
dst: readOptionalJSON( "dist/.destination.json" ),
|
|
compare_size: {
|
|
files: [ "dist/jquery.js", "dist/jquery.min.js" ],
|
|
options: {
|
|
compress: {
|
|
gz: function( contents ) {
|
|
return gzip.zip( contents, {} ).length;
|
|
}
|
|
},
|
|
cache: "build/.sizecache.json"
|
|
}
|
|
},
|
|
build: {
|
|
all: {
|
|
dest: "dist/jquery.js",
|
|
minimum: [
|
|
"core",
|
|
"selector"
|
|
],
|
|
// Exclude specified modules if the module matching the key is removed
|
|
removeWith: {
|
|
ajax: [ "manipulation/_evalUrl" ],
|
|
callbacks: [ "deferred" ],
|
|
css: [ "effects", "dimensions", "offset" ],
|
|
sizzle: [ "css/hiddenVisibleSelectors", "effects/animatedSelector" ]
|
|
}
|
|
}
|
|
},
|
|
bowercopy: {
|
|
options: {
|
|
clean: true
|
|
},
|
|
src: {
|
|
files: {
|
|
"src/sizzle": "sizzle"
|
|
}
|
|
},
|
|
tests: {
|
|
options: {
|
|
destPrefix: "test/libs"
|
|
},
|
|
files: {
|
|
"qunit": "qunit/qunit",
|
|
"require.js": "requirejs/require.js",
|
|
"sinon/fake_timers.js": "sinon/lib/sinon/util/fake_timers.js"
|
|
}
|
|
}
|
|
},
|
|
jsonlint: {
|
|
pkg: {
|
|
src: [ "package.json" ]
|
|
},
|
|
|
|
jscs: {
|
|
src: [ ".jscs.json" ]
|
|
},
|
|
|
|
bower: {
|
|
src: [ "bower.json" ]
|
|
}
|
|
},
|
|
jshint: {
|
|
all: {
|
|
src: [
|
|
"src/**/*.js", "Gruntfile.js", "test/**/*.js", "build/tasks/*",
|
|
"build/{bower-install,release-notes,release}.js"
|
|
],
|
|
options: {
|
|
jshintrc: true
|
|
}
|
|
},
|
|
dist: {
|
|
src: "dist/jquery.js",
|
|
options: srcHintOptions
|
|
}
|
|
},
|
|
jscs: {
|
|
src: "src/**/*.js",
|
|
gruntfile: "Gruntfile.js",
|
|
tasks: "build/tasks/*.js"
|
|
},
|
|
testswarm: {
|
|
tests: "ajax attributes callbacks core css data deferred dimensions effects event manipulation offset queue selector serialize support traversing Sizzle".split( " " )
|
|
},
|
|
watch: {
|
|
files: [ "<%= jshint.grunt.src %>", "<%= jshint.tests.src %>", "src/**/*.js" ],
|
|
tasks: "dev"
|
|
},
|
|
uglify: {
|
|
all: {
|
|
files: {
|
|
"dist/jquery.min.js": [ "dist/jquery.js" ]
|
|
},
|
|
options: {
|
|
preserveComments: false,
|
|
sourceMap: "dist/jquery.min.map",
|
|
sourceMappingURL: "jquery.min.map",
|
|
report: "min",
|
|
beautify: {
|
|
ascii_only: true
|
|
},
|
|
banner: "/*! jQuery v<%= pkg.version %> | " +
|
|
"(c) 2005, 2013 jQuery Foundation, Inc. | " +
|
|
"jquery.org/license */",
|
|
compress: {
|
|
hoist_funs: false,
|
|
loops: false,
|
|
unused: false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// Load grunt tasks from NPM packages
|
|
require( "load-grunt-tasks" )( grunt );
|
|
|
|
// Integrate jQuery specific tasks
|
|
grunt.loadTasks( "build/tasks" );
|
|
|
|
// Alias bower to bowercopy
|
|
grunt.registerTask( "bower", "bowercopy" );
|
|
|
|
// Short list as a high frequency watch task
|
|
grunt.registerTask( "dev", [ "build:*:*", "jshint", "jscs" ] );
|
|
|
|
// Default grunt
|
|
grunt.registerTask( "default", [ "jsonlint", "dev", "uglify", "dist:*", "compare_size" ] );
|
|
};
|