aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.eslintrc-browser.json31
-rw-r--r--.eslintrc-node.json13
-rw-r--r--.eslintrc.json6
-rw-r--r--Gruntfile.js13
-rw-r--r--dist/.eslintrc.json5
-rw-r--r--src/.eslintrc.json19
-rw-r--r--test/.eslintrc.json20
-rw-r--r--test/node_smoke_tests/.eslintrc.json12
-rw-r--r--test/promises_aplus_adapters/.eslintrc.json5
9 files changed, 88 insertions, 36 deletions
diff --git a/.eslintrc-browser.json b/.eslintrc-browser.json
new file mode 100644
index 000000000..c704209ab
--- /dev/null
+++ b/.eslintrc-browser.json
@@ -0,0 +1,31 @@
+{
+ "root": true,
+
+ "extends": "jquery",
+
+ // Support: IE <=9 only, Android <=4.0 only
+ // The above browsers are failing a lot of tests in the ES5
+ // test suite at http://test262.ecmascript.org.
+ "parserOptions": {
+ "ecmaVersion": 3
+ },
+
+ // The browser env is not enabled on purpose so that code takes
+ // all browser-only globals from window instead of assuming
+ // they're available as globals. This makes it possible to use
+ // jQuery with tools like jsdom which provide a custom window
+ // implementation.
+ "env": {},
+
+ "globals": {
+ "window": true,
+ "jQuery": true,
+ "define": true,
+ "module": true,
+ "noGlobal": true
+ },
+
+ "rules": {
+ "strict": ["error", "function"]
+ }
+}
diff --git a/.eslintrc-node.json b/.eslintrc-node.json
new file mode 100644
index 000000000..904e7ba94
--- /dev/null
+++ b/.eslintrc-node.json
@@ -0,0 +1,13 @@
+{
+ "root": true,
+
+ "extends": "jquery",
+
+ "parserOptions": {
+ "ecmaVersion": 5
+ },
+
+ "env": {
+ "node": true
+ }
+}
diff --git a/.eslintrc.json b/.eslintrc.json
index 6dcb6353a..d2c977ca8 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,7 +1,5 @@
{
- "extends": "eslint-config-jquery",
"root": true,
- "env": {
- "node": true
- }
+
+ "extends": "./.eslintrc-node.json"
}
diff --git a/Gruntfile.js b/Gruntfile.js
index 200424d35..fbb271630 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -203,12 +203,21 @@ module.exports = function( grunt ) {
grunt.registerTask( "lint", [
"jsonlint",
- runIfNewNode( "eslint" )
+
+ // Running the full eslint task without breaking it down to targets
+ // would run the dist target first which would point to errors in the built
+ // file, making it harder to fix them. We want to check the built file only
+ // if we already know the source files pass the linter.
+ runIfNewNode( "eslint:dev" ),
+ runIfNewNode( "eslint:dist" )
] );
grunt.registerTask( "lint:newer", [
"newer:jsonlint",
- runIfNewNode( "newer:eslint" )
+
+ // Don't replace it with just the task; see the above comment.
+ runIfNewNode( "newer:eslint:dev" ),
+ runIfNewNode( "newer:eslint:dist" )
] );
grunt.registerTask( "test:fast", runIfNewNode( "node_smoke_tests" ) );
diff --git a/dist/.eslintrc.json b/dist/.eslintrc.json
index b99e682f4..a15539adb 100644
--- a/dist/.eslintrc.json
+++ b/dist/.eslintrc.json
@@ -1,5 +1,8 @@
{
- "extends": "../src/.eslintrc.json",
+ "root": true,
+
+ "extends": "../.eslintrc-browser.json",
+
"rules": {
// That is okay for the built version
"no-multiple-empty-lines": "off",
diff --git a/src/.eslintrc.json b/src/.eslintrc.json
index dbf16c584..3a4a3d257 100644
--- a/src/.eslintrc.json
+++ b/src/.eslintrc.json
@@ -1,18 +1,5 @@
{
- // Support: IE <=9 only, Android <=4.0 only
- // The above browsers are failing a lot of tests in the ES5
- // test suite at http://test262.ecmascript.org.
- "parserOptions": {
- "ecmaVersion": 3
- },
- "globals": {
- "window": true,
- "jQuery": true,
- "define": true,
- "module": true,
- "noGlobal": true
- },
- "rules": {
- "strict": ["error", "function"]
- }
+ "root": true,
+
+ "extends": "../.eslintrc-browser.json"
}
diff --git a/test/.eslintrc.json b/test/.eslintrc.json
index 744de89ec..8cc2adc96 100644
--- a/test/.eslintrc.json
+++ b/test/.eslintrc.json
@@ -1,13 +1,15 @@
{
+ "root": true,
+
+ "extends": "../.eslintrc-browser.json",
+
"env": {
+
+ // In source the browser env is not enabled but unit tests rely on them
+ // too much and we don't run them in non-browser environments anyway.
"browser": true
},
- // Support: IE <=9 only, Android <=4.0 only
- // The above browsers are failing a lot of tests in the ES5
- // test suite at http://test262.ecmascript.org.
- "parserOptions": {
- "ecmaVersion": 3
- },
+
"globals": {
"require": false,
"define": false,
@@ -41,17 +43,19 @@
"baseURL": true,
"externalHost": true
},
+
"rules": {
// See https://github.com/eslint/eslint/issues/2342
"no-unused-vars": "off",
- // Too much errors
+ // Too many errors
"max-len": "off",
"brace-style": "off",
"key-spacing": "off",
"camelcase": "off",
+ "strict": "off",
- // Not really too much - waiting autofix features for these rules
+ // Not really too many - waiting for autofix features for these rules
"lines-around-comment": "off",
"dot-notation": "off"
}
diff --git a/test/node_smoke_tests/.eslintrc.json b/test/node_smoke_tests/.eslintrc.json
index 0877d24af..91ec5ba4e 100644
--- a/test/node_smoke_tests/.eslintrc.json
+++ b/test/node_smoke_tests/.eslintrc.json
@@ -1,7 +1,13 @@
{
+ "root": true,
+
+ "extends": "../../.eslintrc-node.json",
+
+ "parserOptions": {
+ "ecmaVersion": 2015
+ },
+
"env": {
"es6": true
- },
- "extends" : "../../.eslintrc.json",
- "root": true
+ }
}
diff --git a/test/promises_aplus_adapters/.eslintrc.json b/test/promises_aplus_adapters/.eslintrc.json
index d11775710..f961645e5 100644
--- a/test/promises_aplus_adapters/.eslintrc.json
+++ b/test/promises_aplus_adapters/.eslintrc.json
@@ -1,4 +1,5 @@
{
- "extends": "../../.eslintrc.json",
- "root": true
+ "root": true,
+
+ "extends": "../../.eslintrc-node.json"
}