Skip to content

Instantly share code, notes, and snippets.

@samartioli
Created December 28, 2015 21:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save samartioli/fcabc0beea4b80989fe4 to your computer and use it in GitHub Desktop.
Save samartioli/fcabc0beea4b80989fe4 to your computer and use it in GitHub Desktop.
ESLint config example
var MAX_CHARS = 120;
var SPACES_PER_TAB = 4;
var MAX_NESTED_CALLBACKS = 3;
var MAX_PARAMS = 3;
var MAX_STATEMENTS = 10;
module.exports = {
// http://eslint.org/docs/rules/
'ecmaFeatures': {
'arrowFunctions': true,
'binaryLiterals': true,
'blockBindings': true,
'classes': true,
'defaultParams': true,
'destructuring': true,
'forOf': true,
'generators': true,
'modules': true,
'objectLiteralComputedProperties': true,
'objectLiteralDuplicateProperties': true,
'objectLiteralShorthandMethods': true,
'objectLiteralShorthandProperties': true,
'octalLiterals': true,
'regexUFlag': true,
'regexYFlag': true,
'restParams': true,
'spread': true,
'superInFunctions': true,
'templateStrings': true,
'unicodeCodePointEscapes': true,
'globalReturn': true,
'jsx': true,
},
'env': {
'browser': true,
'node': true,
'amd': true,
'mocha': true,
'jasmine': true,
'phantomjs': true,
'jquery': true,
'prototypejs': true,
'shelljs': true,
},
'globals': {
'angular': true,
},
'plugins': [
// e.g. "react" (must run `npm install 'eslint-plugin-react'` first)
],
'rules': {
////////// Possible Errors //////////
'comma-dangle': [2, 'always-multiline'],
'no-cond-assign': 2,
'no-console': 0,
'no-constant-condition': 2,
'no-control-regex': 2,
'no-debugger': 2,
'no-dupe-args': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty': 2,
'no-ex-assign': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': 2,
'no-extra-semi': 2,
'no-func-assign': 2,
'no-inner-declarations': 2,
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-negated-in-lhs': 2,
'no-obj-calls': 2,
'no-regex-spaces': 2,
'no-sparse-arrays': 2,
'no-unreachable': 2,
'use-isnan': 2,
'valid-jsdoc': 2,
'valid-typeof': 2,
'no-unexpected-multiline': 2,
////////// Best Practices //////////
'accessor-pairs': 0,
'block-scoped-var': 0,
'complexity': [2, 2],
'consistent-return': 2,
'curly': 2,
'default-case': 2,
'dot-location': [2, 'property'],
'dot-notation': 2,
'eqeqeq': 2,
'guard-for-in': 0,
'no-alert': 2,
'no-caller': 0,
'no-div-regex': 0,
'no-else-return': 2,
'no-empty-label': 0,
'no-empty-pattern': 0,
'no-eq-null': 2,
'no-eval': 2,
'no-extend-native': 0,
'no-extra-bind': 0,
'no-fallthrough': 2,
'no-floating-decimal': 0,
'no-implied-eval': 0,
'no-iterator': 0,
'no-labels': 0,
'no-lone-blocks': 0,
'no-loop-func': 0,
'no-magic-numbers': 2,
'no-multi-spaces': 2,
'no-multi-str': 0,
'no-native-reassign': 0,
'no-new-func': 0,
'no-new-wrappers': 0,
'no-new': 0,
'no-octal-escape': 0,
'no-octal': 0,
'no-param-reassign': 0,
'no-process-env': 0,
'no-proto': 0,
'no-redeclare': 0,
'no-return-assign': 0,
'no-script-url': 0,
'no-self-compare': 0,
'no-sequences': 0,
'no-throw-literal': 0,
'no-unused-expressions': 0,
'no-void': 0,
'no-warning-comments': 0,
'no-with': 0,
'radix': 0,
'vars-on-top': 0,
'wrap-iife': 0,
'yoda': 0,
////////// Strict Mode //////////
'strict': [2, 'global'],
////////// Variables //////////
'no-catch-shadow': 0,
'no-delete-var': 2,
'no-label-var': 0,
'no-shadow': 0,
'no-shadow-restricted-names': 0,
'no-undef': 2,
'no-undef-init': 0,
'no-undefined': 0,
'no-unused-vars': 2,
'no-use-before-define': 0,
////////// Node.js //////////
'global-require': 2,
'handle-callback-err': [2, '^.*(e|E)rr'],
'no-mixed-requires': 0,
'no-new-require': 0,
'no-path-concat': 0,
'no-process-exit': 0,
'no-restricted-modules': 0,
'no-sync': 0,
////////// Stylistic Issues //////////
'array-bracket-spacing': [2, 'never'],
'block-spacing': [2, 'never'],
'brace-style': [2, '1tbs', {'allowSingleLine': true}],
'camelcase': 2,
'comma-spacing': [2, {'before': false, 'after': true}],
'comma-style': [2, 'last'],
'computed-property-spacing': [2, 'never'],
'consistent-this': [2, 'self'],
'eol-last': 2,
'func-names': 0,
'func-style': [2, 'declaration'],
'indent': 2,
'key-spacing': [2, {'beforeColon': false, 'afterColon': true}],
'lines-around-comment': [
2,
{'beforeBlockComment': true, 'beforeLineComment': true, 'allowBlockStart': true},
],
'linebreak-style': [2, 'unix'],
'max-nested-callbacks': [2, MAX_NESTED_CALLBACKS],
'new-cap': 2,
'new-parens': 2,
'newline-after-var': [2, 'always'],
'no-array-constructor': 2,
'no-continue': 0,
'no-inline-comments': 2,
'no-lonely-if': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multiple-empty-lines': [2, {max: 1}],
'no-nested-ternary': 2,
'no-new-object': 2,
'no-spaced-func': 2,
'no-ternary': 0,
'no-trailing-spaces': 2,
'no-underscore-dangle': 0,
'no-unneeded-ternary': 0,
'object-curly-spacing': [2, 'never'],
'one-var': [2, 'never'],
'operator-assignment': 0,
'operator-linebreak': [2, 'before'],
'padded-blocks': 0,
'quote-props': [2, 'as-needed'],
'quotes': [2, 'single', 'avoid-escape'],
'semi-spacing': 2,
'semi': [2, 'always'],
'sort-vars': 2,
'space-after-keywords': 2,
'space-before-keywords': 2,
'space-before-blocks': 2,
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-return-throw-case': 2,
'space-unary-ops': [2, {'words': true, 'nonwords': false}],
'spaced-comment': [2, 'always', {'block': {'exceptions': ['-+*']} }],
'wrap-regex': 0,
////////// ECMAScript 6 //////////
'constructor-super': 0,
'generator-star-spacing': 0,
'no-this-before-super': 0,
'no-var': 0,
'object-shorthand': 0,
'prefer-const': 0,
////////// Legacy //////////
'max-depth': 2,
'max-len': [2, MAX_CHARS, SPACES_PER_TAB],
'max-params': [2, MAX_PARAMS],
'max-statements': [2, MAX_STATEMENTS],
'no-bitwise': 2,
'no-plusplus': 0,
},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment