.eslintrc.js 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. //更详细的配置文档请参考:https://github.com/vuejs/eslint-plugin-vue#gear-configs
  2. module.exports = {
  3. "extends": "plugin:vue/base",
  4. "parserOptions": {
  5. "ecmaVersion": "latest",
  6. "sourceType": 'module'
  7. },
  8. 'settings': {
  9. 'html/html-extensions': [
  10. ".erb",
  11. ".handlebars",
  12. ".hbs",
  13. ".htm",
  14. ".html",
  15. ".mustache",
  16. ".nunjucks",
  17. ".php",
  18. ".tag",
  19. ".twig",
  20. ".wxml",
  21. ".we",
  22. ]
  23. },
  24. "rules": {
  25. 'no-alert': 0,
  26. 'eqeqeq': ['error', 'always'], // 用强等于做判断
  27. 'semi': [2, "always"], // 结尾不分号
  28. 'no-multi-spaces': 'error',
  29. 'quotes': ['error', 'single'], // 使用单引号
  30. 'arrow-parens': ['error', 'as-needed'], // 简略箭头函数
  31. 'object-curly-newline': ['error', {
  32. 'multiline': true
  33. }], // 在属性内部或属性之间有换行符,就要求有换行符
  34. 'object-curly-spacing': ['error', 'always'], // 要求花括号内有空格 (除了 {})
  35. //在computed properties中禁用异步actions
  36. 'vue/no-async-in-computed-properties': 'error',
  37. //不允许重复的keys
  38. 'vue/no-dupe-keys': 'error',
  39. //不允许重复的attributes
  40. 'vue/no-duplicate-attributes': 'warn',
  41. //在 <template> 标签下不允许解析错误
  42. 'vue/no-parsing-error': ['error', {
  43. 'x-invalid-end-tag': false,
  44. }],
  45. //不允许覆盖保留关键字
  46. 'vue/no-reserved-keys': 'error',
  47. //强制data必须是一个带返回值的函数
  48. // 'vue/no-shared-component-data': 'error',
  49. //不允许在computed properties中出现副作用。
  50. 'vue/no-side-effects-in-computed-properties': 'error',
  51. //<template>不允许key属性
  52. 'vue/no-template-key': 'warn',
  53. //在 <textarea> 中不允许mustaches
  54. 'vue/no-textarea-mustache': 'error',
  55. //不允许在v-for或者范围内的属性出现未使用的变量定义
  56. 'vue/no-unused-vars': 'warn',
  57. //<component>标签需要v-bind:is属性
  58. 'vue/require-component-is': 'error',
  59. // render 函数必须有一个返回值
  60. 'vue/require-render-return': 'error',
  61. //保证 v-bind:key 和 v-for 指令成对出现
  62. 'vue/require-v-for-key': 'error',
  63. // 检查默认的prop值是否有效
  64. 'vue/require-valid-default-prop': 'error',
  65. // 保证computed属性中有return语句
  66. 'vue/return-in-computed-property': 'error',
  67. // 强制校验 template 根节点
  68. 'vue/valid-template-root': 'error',
  69. // 强制校验 v-bind 指令
  70. 'vue/valid-v-bind': 'error',
  71. // 强制校验 v-cloak 指令
  72. 'vue/valid-v-cloak': 'error',
  73. // 强制校验 v-else-if 指令
  74. 'vue/valid-v-else-if': 'error',
  75. // 强制校验 v-else 指令
  76. 'vue/valid-v-else': 'error',
  77. // 强制校验 v-for 指令
  78. 'vue/valid-v-for': 'error',
  79. // 强制校验 v-html 指令
  80. 'vue/valid-v-html': 'error',
  81. // 强制校验 v-if 指令
  82. 'vue/valid-v-if': 'error',
  83. // 强制校验 v-model 指令
  84. 'vue/valid-v-model': 'error',
  85. // 强制校验 v-on 指令
  86. 'vue/valid-v-on': 'error',
  87. // 强制校验 v-once 指令
  88. 'vue/valid-v-once': 'error',
  89. // 强制校验 v-pre 指令
  90. 'vue/valid-v-pre': 'error',
  91. // 强制校验 v-show 指令
  92. 'vue/valid-v-show': 'error',
  93. // 强制校验 v-text 指令
  94. 'vue/valid-v-text': 'error',
  95. 'vue/comment-directive': 0
  96. }
  97. };