.eslintrc.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // http://eslint.org/docs/user-guide/configuring
  2. module.exports = {
  3. root: true,
  4. parser: 'babel-eslint',
  5. parserOptions: {
  6. sourceType: 'module'
  7. },
  8. env: {
  9. browser: true,
  10. },
  11. extends: 'airbnb-base',
  12. // required to lint *.vue files
  13. plugins: [
  14. 'html'
  15. ],
  16. // check if imports actually resolve
  17. 'settings': {
  18. 'import/resolver': {
  19. 'webpack': {
  20. 'config': 'scripts/webpack.conf.js'
  21. }
  22. }
  23. },
  24. // add your custom rules here
  25. 'rules': {
  26. // don't require .vue extension when importing
  27. 'import/extensions': ['error', 'always', {
  28. 'js': 'never',
  29. 'vue': 'never'
  30. }],
  31. // allow debugger during development
  32. 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
  33. 'no-console': ['warn', {
  34. allow: ['error', 'warn', 'info'],
  35. }],
  36. 'no-param-reassign': ['error', {
  37. props: false,
  38. }],
  39. 'consistent-return': 'off',
  40. 'no-use-before-define': ['error', 'nofunc'],
  41. 'object-shorthand': ['error', 'always'],
  42. 'no-mixed-operators': 'off',
  43. 'no-bitwise': ['error', { int32Hint: true }],
  44. 'no-underscore-dangle': 'off',
  45. 'arrow-parens': ['error', 'as-needed'],
  46. 'prefer-promise-reject-errors': 'off',
  47. 'prefer-destructuring': ['error', { array: false }],
  48. indent: ['error', 2, {
  49. MemberExpression: 0,
  50. flatTernaryExpressions: true,
  51. }],
  52. },
  53. globals: {
  54. browser: true,
  55. zip: true,
  56. },
  57. }