diff --git a/.eslintignore b/.eslintignore index 961edb7..c113604 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1,5 @@ core/assets/vendor/**/* -core/modules/locale/tests/locale_test.js +core/modules/locale/tests/locale_test.es6.js vendor/**/* sites/**/files/**/* libraries/**/* diff --git a/.eslintrc b/.eslintrc index 9c0e3e6..5fbe64c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,3 +1,4 @@ { - "extends": "./core/.eslintrc" + "extends": "./core/.eslintrc", + "root": true } diff --git a/core/.eslintrc b/core/.eslintrc index 42dda02..b0be57c 100644 --- a/core/.eslintrc +++ b/core/.eslintrc @@ -1,5 +1,5 @@ { - "extends": "eslint:recommended", + "extends": "eslint-config-airbnb", "env": { "browser": true, "es6": true, @@ -18,72 +18,6 @@ "CKEDITOR": true }, "rules": { - // Errors. - "array-bracket-spacing": [2, "never"], - "block-scoped-var": 2, - "brace-style": [2, "stroustrup", {"allowSingleLine": true}], - "comma-dangle": [2, "never"], - "comma-spacing": 2, - "comma-style": [2, "last"], - "computed-property-spacing": [2, "never"], - "curly": [2, "all"], - "eol-last": 2, - "eqeqeq": [2, "smart"], - "guard-for-in": 2, - "indent": [2, 2, {"SwitchCase": 1}], - "key-spacing": [2, {"beforeColon": false, "afterColon": true}], - "keyword-spacing": [2, {"before": true, "after": true}], - "linebreak-style": [2, "unix"], - "lines-around-comment": [2, {"beforeBlockComment": true, "afterBlockComment": false}], - "new-parens": 2, - "no-array-constructor": 2, - "no-caller": 2, - "no-catch-shadow": 2, - "no-eval": 2, - "no-extend-native": 2, - "no-extra-bind": 2, - "no-extra-parens": [2, "functions"], - "no-implied-eval": 2, - "no-iterator": 2, - "no-label-var": 2, - "no-labels": 2, - "no-lone-blocks": 2, - "no-loop-func": 2, - "no-multi-spaces": 2, - "no-multi-str": 2, - "no-native-reassign": 2, - "no-nested-ternary": 2, - "no-new-func": 2, - "no-new-object": 2, - "no-new-wrappers": 2, - "no-octal-escape": 2, - "no-process-exit": 2, - "no-proto": 2, - "no-return-assign": 2, - "no-script-url": 2, - "no-sequences": 2, - "no-shadow-restricted-names": 2, - "no-spaced-func": 2, - "no-trailing-spaces": 2, - "no-undef-init": 2, - "no-undefined": 2, - "no-unused-expressions": 2, - "no-unused-vars": [2, {"vars": "all", "args": "none"}], - "no-with": 2, - "object-curly-spacing": [2, "never"], - "one-var": [2, "never"], - "quote-props": [2, "consistent-as-needed"], - "quotes": [2, "single", "avoid-escape"], - "semi": [2, "always"], - "semi-spacing": [2, {"before": false, "after": true}], - "space-before-blocks": [2, "always"], - "space-before-function-paren": [2, {"anonymous": "always", "named": "never"}], - "space-in-parens": [2, "never"], - "space-infix-ops": 2, - "space-unary-ops": [2, { "words": true, "nonwords": false }], - "spaced-comment": [2, "always"], - "strict": 2, - "yoda": [2, "never"], // Warnings. "max-nested-callbacks": [1, 3], "valid-jsdoc": [1, { diff --git a/package.json b/package.json index 65d54a2..f840a7e 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,18 @@ "private": true, "scripts": { "build:js": "./core/scripts/build-javascript.sh", - "watch:js": "node ./core/scripts/javascript-babel-watcher.js" + "watch:js": "node ./core/scripts/javascript-babel-watcher.js", + "lint:core-js": "node ./node_modules/eslint/bin/eslint.js --ext=.es6.js core/ --fix || exit 0" }, "devDependencies": { "babel-cli": "6.16.0", "babel-preset-es2015": "6.16.0", - "chokidar": "1.6.0" + "chokidar": "1.6.0", + "eslint": "^3.7.1", + "eslint-config-airbnb": "^12.0.0", + "eslint-plugin-import": "^1.16.0", + "eslint-plugin-jsx-a11y": "^2.2.2", + "eslint-plugin-react": "^6.3.0" }, "babel": { "presets": [