.eslintrc.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. const eslintrc = {
  2. extends: ['eslint-config-airbnb'],
  3. env: {
  4. browser: true,
  5. node: true,
  6. jasmine: true,
  7. jest: true,
  8. es6: true,
  9. },
  10. parser: 'babel-eslint',
  11. parserOptions: {
  12. ecmaVersion: 6,
  13. ecmaFeatures: {
  14. jsx: true,
  15. experimentalObjectRestSpread: true,
  16. },
  17. },
  18. plugins: [
  19. 'markdown',
  20. 'react',
  21. 'babel',
  22. ],
  23. rules: {
  24. 'func-names': 0,
  25. 'arrow-body-style': 0,
  26. 'react/sort-comp': 0,
  27. 'react/prop-types': 0,
  28. 'react/jsx-first-prop-new-line': 0,
  29. 'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx', '.md'] }],
  30. 'import/extensions': 0,
  31. 'import/no-unresolved': 0,
  32. 'import/no-extraneous-dependencies': 0,
  33. 'prefer-destructuring': 0,
  34. 'no-param-reassign': 0,
  35. 'no-return-assign': 0,
  36. 'max-len': 0,
  37. 'consistent-return': 0,
  38. 'no-redeclare': 0,
  39. 'react/require-extension': 0,
  40. 'jsx-a11y/no-static-element-interactions': 0,
  41. 'jsx-a11y/anchor-has-content': 0,
  42. 'jsx-a11y/click-events-have-key-events': 0,
  43. 'jsx-a11y/no-noninteractive-element-interactions': 0,
  44. 'jsx-a11y/anchor-is-valid': 0,
  45. 'react/no-danger': 0,
  46. 'comma-dangle': ['error', 'always-multiline'],
  47. 'function-paren-newline': 0,
  48. 'object-curly-newline': 0,
  49. 'no-restricted-globals': 0,
  50. 'jsx-a11y/mouse-events-have-key-events': 0,
  51. 'react/jsx-no-target-blank': 0,
  52. 'react/no-find-dom-node': 0,
  53. 'react/no-unescaped-entities': 0,
  54. 'react/prefer-stateless-function': 0,
  55. 'import/no-webpack-loader-syntax': 0,
  56. 'react/forbid-prop-types': 0,
  57. 'react/destructuring-assignment': 0,
  58. 'react/no-access-state-in-setstate': 0,
  59. 'import/no-cycle': 0,
  60. 'react/jsx-props-no-spreading': 0,
  61. 'react/state-in-constructor': 0,
  62. 'react/static-property-placement': 0
  63. },
  64. };
  65. if (process.env.RUN_ENV === 'DEMO') {
  66. eslintrc.globals = {
  67. React: true,
  68. ReactDOM: true,
  69. mountNode: true,
  70. };
  71. Object.assign(eslintrc.rules, {
  72. indent: 0,
  73. 'no-console': 0,
  74. 'no-plusplus': 0,
  75. 'eol-last': 0,
  76. 'prefer-rest-params': 0,
  77. 'react/no-multi-comp': 0,
  78. 'jsx-a11y/href-no-hash': 0,
  79. 'import/newline-after-import': 0,
  80. });
  81. }
  82. module.exports = eslintrc;