eslint.config.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // eslint.config.js
  2. import antfu from '@antfu/eslint-config'
  3. export default antfu({
  4. unocss: true,
  5. stylistic: {
  6. indent: 2, // 4, or 'tab'
  7. quotes: 'single', // or 'double'
  8. },
  9. // 使用外部格式化程序来格式化 ESLint 无法处理的文件( .css 、 .html 等)
  10. formatters: {
  11. css: true,
  12. html: true,
  13. markdown: 'prettier',
  14. },
  15. // https://alloyteam.github.io/eslint-config-alloy/?language=zh-CN&rule=base
  16. // https://eslint.vuejs.org/rules/
  17. rules: {
  18. 'no-console': 'off',
  19. // 强制组件顶级元素的顺序
  20. 'vue/block-order': [
  21. 'error',
  22. {
  23. order: ['template', 'script', 'style'],
  24. },
  25. ],
  26. 'max-params': ['error', 4],
  27. // 代码块嵌套的深度禁止超过 4 层
  28. 'max-depth': ['error', 4],
  29. // 回调函数嵌套禁止超过 3 层,多了请用 async await 替代
  30. 'max-nested-callbacks': ['error', 4],
  31. // 禁止使用 Array 构造函数时传入的参数超过一个
  32. // 参数为多个时表示创建一个指定内容的数组,此时可以用数组字面量实现,不必使用构造函数
  33. 'no-array-constructor': 'error',
  34. // 禁止 if else 的条件判断中出现重复的条件
  35. 'no-dupe-else-if': 'error',
  36. // 禁止出现空代码块,允许 catch 为空代码块
  37. 'no-empty': [
  38. 'error',
  39. {
  40. allowEmptyCatch: true,
  41. },
  42. ],
  43. // 禁止出现没必要的字符串连接
  44. 'no-useless-concat': 'error',
  45. // 禁止使用 var
  46. 'no-var': 'error',
  47. // 禁止变量申明时用逗号一次申明多个
  48. 'one-var': ['error', 'never'],
  49. // 必须使用 ... 而不是 Object.assign,除非 Object.assign 的第一个参数是一个变量
  50. 'prefer-object-spread': 'error',
  51. // 回调函数必须使用箭头函数
  52. 'prefer-arrow-callback': 'error',
  53. // "stroustrup":强制一致的大括号风格,左括号必须与控制语句在同一行开始,右括号必须独占一行。
  54. 'brace-style': ['error', 'stroustrup'],
  55. // 强制使用 node 全局变量 process 而不是 require("process") 。
  56. 'node/prefer-global/process': 'off',
  57. // 对所有控制语句强制执行一致的大括号样式,(只有一行的时候eslint默认是不需要大括号的,这样会降低代码清晰度)
  58. 'curly': ['error', 'all'],
  59. },
  60. })