chore(grunt): add jshint tasks

This commit is contained in:
Pete Bacon Darwin 2013-10-21 09:06:53 +01:00 committed by Vojta Jina
parent 2d8d6dd192
commit 934a95d3ef
13 changed files with 482 additions and 38 deletions

View file

@ -13,6 +13,7 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-merge-conflict');
grunt.loadNpmTasks('grunt-parallel');
grunt.loadNpmTasks('grunt-shell');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadTasks('lib/grunt');
var NG_VERSION = util.getVersion();
@ -104,6 +105,48 @@ module.exports = function(grunt) {
tmp: ['tmp']
},
jshint: {
ng: {
files: { src: files['angularSrc'] },
options: { jshintrc: 'src/.jshintrc' }
},
ngAnimate: {
files: { src: 'src/ngAnimate/**/*.js' },
options: { jshintrc: 'src/ngAnimate/.jshintrc' }
},
ngCookies: {
files: { src: 'src/ngCookies/**/*.js' },
options: { jshintrc: 'src/ngCookies/.jshintrc' }
},
ngLocale: {
files: { src: 'src/ngLocale/**/*.js' },
options: { jshintrc: 'src/ngLocale/.jshintrc' }
},
ngMock: {
files: { src: 'src/ngMock/**/*.js' },
options: { jshintrc: 'src/ngMock/.jshintrc' }
},
ngResource: {
files: { src: 'src/ngResource/**/*.js' },
options: { jshintrc: 'src/ngResource/.jshintrc' }
},
ngRoute: {
files: { src: 'src/ngRoute/**/*.js' },
options: { jshintrc: 'src/ngRoute/.jshintrc' }
},
ngSanitize: {
files: { src: 'src/ngSanitize/**/*.js' },
options: { jshintrc: 'src/ngSanitize/.jshintrc' }
},
ngScenario: {
files: { src: 'src/ngScenario/**/*.js' },
options: { jshintrc: 'src/ngScenario/.jshintrc' }
},
ngTouch: {
files: { src: 'src/ngTouch/**/*.js' },
options: { jshintrc: 'src/ngTouch/.jshintrc' }
}
},
build: {
scenario: {
@ -127,49 +170,36 @@ module.exports = function(grunt) {
},
loader: {
dest: 'build/angular-loader.js',
src: util.wrap(['src/loader.js'], 'loader')
src: util.wrap(files['angularLoader'], 'loader')
},
touch: {
dest: 'build/angular-touch.js',
src: util.wrap([
'src/ngTouch/touch.js',
'src/ngTouch/swipe.js',
'src/ngTouch/directive/ngClick.js',
'src/ngTouch/directive/ngSwipe.js'
], 'module')
src: util.wrap(files['angularModules']['ngTouch'], 'module')
},
mocks: {
dest: 'build/angular-mocks.js',
src: ['src/ngMock/angular-mocks.js'],
src: files['angularModules']['ngMock'],
strict: false
},
sanitize: {
dest: 'build/angular-sanitize.js',
src: util.wrap([
'src/ngSanitize/sanitize.js',
'src/ngSanitize/filter/linky.js'
], 'module')
src: util.wrap(files['angularModules']['ngSanitize'], 'module')
},
resource: {
dest: 'build/angular-resource.js',
src: util.wrap(['src/ngResource/resource.js'], 'module')
src: util.wrap(files['angularModules']['ngResource'], 'module')
},
animate: {
dest: 'build/angular-animate.js',
src: util.wrap(['src/ngAnimate/animate.js'], 'module')
src: util.wrap(files['angularModules']['ngAnimate'], 'module')
},
route: {
dest: 'build/angular-route.js',
src: util.wrap([
'src/ngRoute/routeUtils.js',
'src/ngRoute/route.js',
'src/ngRoute/routeParams.js',
'src/ngRoute/directive/ngView.js'
], 'module')
src: util.wrap(files['angularModules']['ngRoute'], 'module')
},
cookies: {
dest: 'build/angular-cookies.js',
src: util.wrap(['src/ngCookies/cookies.js'], 'module')
src: util.wrap(files['angularModules']['ngCookies'], 'module')
},
"promises-aplus-adapter": {
dest:'tmp/promises-aplus-adapter++.js',

58
angularFiles.js vendored
View file

@ -65,24 +65,40 @@ angularFiles = {
'src/ng/directive/style.js'
],
'angularSrcModules': [
'src/ngAnimate/animate.js',
'src/ngCookies/cookies.js',
'src/ngResource/resource.js',
'src/ngRoute/routeUtils.js',
'src/ngRoute/route.js',
'src/ngRoute/routeParams.js',
'src/ngRoute/directive/ngView.js',
'src/ngSanitize/sanitize.js',
'src/ngSanitize/filter/linky.js',
'src/ngMock/angular-mocks.js',
'src/ngTouch/touch.js',
'src/ngTouch/swipe.js',
'src/ngTouch/directive/ngClick.js',
'src/ngTouch/directive/ngSwipe.js',
'docs/components/angular-bootstrap/bootstrap.js',
'angularLoader': [
'src/loader.js'
],
'angularModules': {
'ngAnimate': [
'src/ngAnimate/animate.js'
],
'ngCookies': [
'src/ngCookies/cookies.js'
],
'ngResource': [
'src/ngResource/resource.js'
],
'ngRoute': [
'src/ngRoute/route.js',
'src/ngRoute/routeParams.js',
'src/ngRoute/directive/ngView.js'
],
'ngSanitize': [
'src/ngSanitize/sanitize.js',
'src/ngSanitize/filter/linky.js'
],
'ngMock': [
'src/ngMock/angular-mocks.js'
],
'ngTouch': [
'src/ngTouch/touch.js',
'src/ngTouch/swipe.js',
'src/ngTouch/directive/ngClick.js',
'src/ngTouch/directive/ngSwipe.js'
],
},
'angularScenario': [
'src/ngScenario/Scenario.js',
'src/ngScenario/browserTrigger.js',
@ -172,6 +188,16 @@ angularFiles = {
]
};
angularFiles['angularSrcModules'] = [].concat(
angularFiles['angularModules']['ngAnimate'],
angularFiles['angularModules']['ngCookies'],
angularFiles['angularModules']['ngResource'],
angularFiles['angularModules']['ngRoute'],
angularFiles['angularModules']['ngSanitize'],
angularFiles['angularModules']['ngMock'],
angularFiles['angularModules']['ngTouch']
);
if (exports) {
exports.files = angularFiles;
exports.mergeFilesFor = function() {

View file

@ -44,5 +44,8 @@
"type": "MIT",
"url": "https://github.com/angular/angular.js/blob/master/LICENSE"
}
]
],
"dependencies": {
"grunt-contrib-jshint": "~0.6.4"
}
}

164
src/.jshintrc Normal file
View file

@ -0,0 +1,164 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": 200,
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
/* auto/injector.js */
"createInjector": false,
/* angular.js */
"angular": false,
"msie": false,
"jqLite": false,
"jQuery": false,
"slice": false,
"push": false,
"toString": false,
"ngMinErr": false,
"_angular": false,
"angularModule": false,
"nodeName_": false,
"uid": false,
"lowercase": false,
"uppercase": false,
"manualLowercase": false,
"manualUppercase": false,
"nodeName_": false,
"isArrayLike": false,
"forEach": false,
"sortedKeys": false,
"forEachSorted": false,
"reverseParams": false,
"nextUid": false,
"setHashKey": false,
"extend": false,
"int": false,
"inherit": false,
"noop": false,
"identity": false,
"valueFn": false,
"isUndefined": false,
"isDefined": false,
"isObject": false,
"isString": false,
"isNumber": false,
"isDate": false,
"isArray": false,
"isFunction": false,
"isRegExp": false,
"isWindow": false,
"isScope": false,
"isFile": false,
"isBoolean": false,
"trim": false,
"isElement": false,
"makeMap": false,
"map": false,
"size": false,
"includes": false,
"indexOf": false,
"arrayRemove": false,
"isLeafNode": false,
"copy": false,
"shallowCopy": false,
"equals": false,
"csp": false,
"concat": false,
"sliceArgs": false,
"bind": false,
"toJsonReplacer": false,
"toJson": false,
"fromJson": false,
"toBoolean": false,
"startingTag": false,
"tryDecodeURIComponent": false,
"parseKeyValue": false,
"toKeyValue": false,
"encodeUriSegment": false,
"encodeUriQuery": false,
"angularInit": false,
"bootstrap": false,
"snake_case": false,
"bindJQuery": false,
"assertArg": false,
"assertArgFn": false,
"assertNotHasOwnProperty": false,
"getter": false,
/* AngularPublic.js */
"version": false,
"publishExternalAPI": false,
/* minerr.js */
"minErr": false,
/* loader.js */
"setupModuleLoader": false,
/* jqLite.js */
"BOOLEAN_ATTR": false,
"jqNextId": false,
"camelCase": false,
"jqLitePatchJQueryRemove": false,
"JQLite": false,
"jqLiteClone": false,
"jqLiteDealoc": false,
"jqLiteOff": false,
"jqLiteRemoveData": false,
"jqLiteExpandoStore": false,
"jqLiteData": false,
"jqLiteHasClass": false,
"jqLiteRemoveClass": false,
"jqLiteAddClass": false,
"jqLiteAddNodes": false,
"jqLiteController": false,
"jqLiteInheritedData": false,
"getBooleanAttrName": false,
"createEventHandler": false,
"JQLitePrototype": false,
"addEventListenerFn": false,
"removeEventListenerFn": false,
/* apis.js */
"hashKey": false,
"HashMap": false,
/* urlUtils.js */
"urlResolve": false,
"urlIsSameOrigin": false,
/* ng/compile.js */
"directiveNormalize": false,
/* ng/parse.js */
"setter": false,
/* ng/directive/directives.js */
"ngDirective": false,
/* ng/directive/input.js */
"VALID_CLASS": false,
"INVALID_CLASS": false,
"PRISTINE_CLASS": false,
"DIRTY_CLASS": false,
/* ng/directive/form.js */
"nullFormCtrl": false
}
}

22
src/ngAnimate/.jshintrc Normal file
View file

@ -0,0 +1,22 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": false, /* ngAnimate docs contain wide tables */
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false
}
}

22
src/ngCookies/.jshintrc Normal file
View file

@ -0,0 +1,22 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": 100,
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false
}
}

23
src/ngLocale/.jshintrc Normal file
View file

@ -0,0 +1,23 @@
{
"bitwise": false, /* locale files use bitwise operators */
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": false, /* locale files are generated from a 3rd party library that has long lines */
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false
},
"-W041": false
}

25
src/ngMock/.jshintrc Normal file
View file

@ -0,0 +1,25 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": 100,
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false,
"expect": false,
"beforeEach": false,
"afterEach": false
}
}

22
src/ngResource/.jshintrc Normal file
View file

@ -0,0 +1,22 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": 100,
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false
}
}

23
src/ngRoute/.jshintrc Normal file
View file

@ -0,0 +1,23 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": 100,
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false,
"ngRouteModule": false
}
}

23
src/ngSanitize/.jshintrc Normal file
View file

@ -0,0 +1,23 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": 100,
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false,
"htmlSanitizeWriter": false
}
}

38
src/ngScenario/.jshintrc Normal file
View file

@ -0,0 +1,38 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": 100,
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false,
"includes": false,
"asyncForEach": false,
"msie": false,
"browserTrigger": false,
"console": false,
"alert": false,
"indexOf": false,
"_jQuery": false,
"angularInit": false,
"formatException": false,
"AnimationEvent": false,
"TransitionEvent": false,
"WebKitAnimationEvent": false,
"WebKitTransitionEvent": false,
"$runner": false,
"callerFile": false
}
}

23
src/ngTouch/.jshintrc Normal file
View file

@ -0,0 +1,23 @@
{
"bitwise": true,
"immed": true,
"newcap": true,
"noarg": true,
"noempty": true,
"nonew": true,
"trailing": true,
"maxlen": 100,
"boss": true,
"eqnull": true,
"expr": true,
"globalstrict": true,
"laxbreak": true,
"loopfunc": true,
"sub": true,
"undef": true,
"browser": true,
"globals": {
"angular": false,
"ngTouch": false
}
}