.eslintrc.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. // https://eslint.org/docs/user-guide/configuring
  2. module.exports = {
  3. root: true,
  4. parserOptions: {
  5. parser: 'babel-eslint'
  6. },
  7. env: {
  8. browser: false,
  9. node: true,
  10. es6: true,
  11. mocha: true
  12. },
  13. globals: {
  14. 'document': true,
  15. 'localStorage': true,
  16. 'window': true,
  17. 'navigator': true,
  18. 'yufp': true,
  19. 'Image': true,
  20. 'backend': true
  21. },
  22. // extends: [
  23. // // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
  24. // // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
  25. // 'plugin:vue/essential',
  26. // // https://github.com/standard/standard/blob/master/docs/RULES-en.md
  27. // 'standard'
  28. // ],
  29. extends: ['plugin:vue/recommended', 'eslint:recommended'],
  30. // required to lint *.vue files
  31. plugins: [
  32. 'vue',
  33. 'html'
  34. ],
  35. // add your custom rules here
  36. rules: {
  37. "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
  38. "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
  39. "vue/max-attributes-per-line": [2, {
  40. "singleline": 10,
  41. "multiline": {
  42. "max": 1,
  43. "allowFirstLine": false
  44. }
  45. }],
  46. "vue/singleline-html-element-content-newline": "off",
  47. "vue/multiline-html-element-content-newline": "off",
  48. // "vue/name-property-casing": ["error", "PascalCase"],
  49. "vue/name-property-casing": "off",
  50. "vue/no-v-html": "off",
  51. "vue/valid-v-bind": "off",
  52. "vue/html-closing-bracket-newline": "off",
  53. // @fixable vue属性编写顺序
  54. // @off 没有必要限制
  55. "vue/attributes-order": "off",
  56. "vue/html-self-closing": "off",
  57. "vue/require-default-prop": "off",
  58. "vue/attribute-hyphenation": "off",
  59. "vue/no-unused-components": "off",
  60. // "vue/html-self-closing": ["error", {
  61. // "html": {
  62. // "void": "never",
  63. // "normal": "any",
  64. // "component": "aneverny"
  65. // },
  66. // "svg": "always",
  67. // "math": "always"
  68. // }],
  69. // 定义对象的set存取器属性时,强制定义get
  70. 'accessor-pairs': 0,
  71. // 在数组括号内强制实现一致的间距。
  72. 'array-bracket-newline': 0,
  73. // 指定数组的元素之间要以空格隔开(, 后面), never参数:[ 之前和 ] 之后不能带空格,always参数:[ 之前和 ] 之后必须带空格
  74. 'array-bracket-spacing': [2, 'never'],
  75. // 强制数组方法的回调函数中有 return 语句
  76. 'array-callback-return': 0,
  77. // 强制数组元素间出现换行
  78. 'array-element-newline': 0,
  79. // 要求箭头函数体使用大括号
  80. // fixed: 对es6箭头函数非必要
  81. 'arrow-body-style': 0,
  82. // 要求箭头函数的参数使用圆括号
  83. 'arrow-parens': 0,
  84. // 要求箭头函数空格
  85. 'arrow-spacing': [2, {'before': true,'after': true}],
  86. // 强制把变量的使用限制在其定义的作用域范围内
  87. 'block-scoped-var': 0,
  88. // 禁止或强制在单行代码块中使用空格(禁用)
  89. 'block-spacing': 0,
  90. //强制使用一致的缩进 第二个参数为 'tab' 时,会使用tab,
  91. // if while function 后面的{必须与if在同一行,java风格。
  92. 'brace-style': [2, '1tbs', { 'allowSingleLine': true }],
  93. // require return statements after
  94. 'callback-return': 0,
  95. // 双峰驼命名格式
  96. 'camelcase': 2,
  97. // 注释 大写字母开头,不推荐 注释的代码会报错
  98. 'capitalized-comments': 0,
  99. // 如果一个类方法没有使用this,它有时可以变成一个静态函数。如果将该方法转换为静态函数,那么调用该特定方法的类的实例也必须转换为静态调用
  100. 'class-methods-use-this': 0,
  101. // 数组和对象键值对最后一个逗号, never参数:不能带末尾的逗号, always参数:必须带末尾的逗号,
  102. // always-multiline:多行模式必须带逗号,单行模式不能带逗号
  103. // 'comma-dangle': [2, 'never'],
  104. // 控制逗号前后的空格
  105. 'comma-spacing': [2, {'before': false,'after': true}],
  106. // 控制逗号在行尾出现还是在行首出现 (默认行尾)
  107. // http: //eslint.org/docs/rules/comma-style
  108. 'comma-style': [2,'last'],
  109. // 限制圈复杂度,也就是类似if else能连续接多少个
  110. 'complexity': 0,
  111. // 以方括号取对象属性时,[ 后面和 ] 前面是否需要空格, 可选参数 never, always
  112. 'computed-property-spacing': [2,'never'],
  113. // 要求 return 语句要么总是指定返回的值,要么不指定
  114. 'consistent-return': 0,
  115. // 用于指统一在回调函数中指向this的变量名,箭头函数中的this已经可以指向外层调用者,应该没卵用了
  116. // e.g [0,'that'] 指定只能 var that = this. that不能指向其他任何值,this也不能赋值给that以外的其他值
  117. 'consistent-this': [2, '_this'],
  118. // 强制在子类构造函数中用super()调用父类构造函数,TypeScrip的编译器也会提示
  119. 'constructor-super': 0,
  120. // 强制所有控制语句使用一致的括号风格
  121. 'curly': [0,'all'],
  122. // switch 语句强制 default 分支,也可添加 // no default 注释取消此次警告
  123. 'default-case': 2,
  124. // 强制object.key 中 . 的位置,参数:
  125. // property,'.'号应与属性在同一行
  126. // object, '.' 号应与对象名在同一行
  127. 'dot-location': [2,'property'],
  128. // 强制使用.号取属性
  129. // 参数: allowKeywords:true 使用保留字做属性名时,只能使用.方式取属性
  130. // false 使用保留字做属性名时, 只能使用[]方式取属性 e.g [2, {'allowKeywords': false}]
  131. // allowPattern: 当属性名匹配提供的正则表达式时,允许使用[]方式取值,否则只能用.号取值 e.g [2, {'allowPattern': '^[a-z]+(_[a-z]+)+$'}]
  132. 'dot-notation': 0,
  133. // 文件末尾强制换行
  134. 'eol-last': 0,
  135. // 使用 === 替代 == allow-null允许null和undefined==
  136. 'eqeqeq': [0, 'allow-null'],
  137. //强制 “for” 循环中更新子句的计数器朝着正确的方向移动
  138. 'for-direction': "error",
  139. // 要求或禁止函数标识符与其调用之间的间隔
  140. 'func-call-spacing': [0, 'always'],
  141. // 要求函数名称与它们所分配的变量或属性的名称相匹配
  142. 'func-name-matching': 2,
  143. // 强制使用命名的 function 表达式
  144. 'func-names': 0,
  145. // 强制一致地使用函数声明或函数表达式,方法定义风格,参数:
  146. // declaration: 强制使用方法声明的方式,function f(){} e.g [2, 'declaration']
  147. // expression:强制使用方法表达式的方式,var f = function() {} e.g [2, 'expression']
  148. // allowArrowFunctions: declaration风格中允许箭头函数。 e.g [2, 'declaration', { 'allowArrowFunctions': true }]
  149. 'func-style': 0,
  150. // 在函数括号内强制执行一致的换行符
  151. 'function-paren-newline': 0,
  152. // 强制 generator 函数中 * 号周围使用一致的空格
  153. 'generator-star-spacing': [2, {'before': true,'after': true}],
  154. // 强制在 getter 属性中出现一个 return 语句。每个 getter 都期望有返回值。
  155. 'getter-return': 2,
  156. // 要求 require() 出现在顶层模块作用域中
  157. 'global-require': 0,
  158. // 要求 for-in 循环中有一个 if 语句
  159. 'guard-for-in': 0,
  160. // 要求回调函数中有容错处理
  161. 'handle-callback-err': [2,'^(err|error)$'],
  162. // 禁止使用指定的标识符
  163. 'id-blacklist': 0,
  164. // 强制标识符的最新和最大长度
  165. 'id-length': 0,
  166. // 要求标识符匹配一个指定的正则表达式
  167. 'id-match': 0,
  168. // 强制执行箭头函数体的位置,一个箭头函数体可以包含一个隐式返回,而不是一个块体。对隐式返回的表达式执行一致的位置可能很有用。
  169. 'implicit-arrow-linebreak': 0,
  170. // 强制执行一致的缩进
  171. 'indent': [2, 2, {'SwitchCase': 1}], // 强制 switch 语句中的 case 子句的缩进水平(默认:0)
  172. // 要求或禁止 var 声明中的初始化(初值)
  173. 'init-declarations': 0,
  174. // 强制在 JSX 属性中一致地使用双引号或单引号
  175. 'jsx-quotes': 2,
  176. // 强制在对象字面量的属性中键和值之间使用一致的间距
  177. // 'key-spacing': [2, {'beforeColon': false,'afterColon': true}],
  178. // 强制在关键字前后使用一致的空格 (前后腰需要)
  179. // 'keyword-spacing': [2, {'beforeColon': true, 'afterColon': true}],
  180. // 行注释可以位于代码上方或旁边。该规则有助于团队保持一致的风格。
  181. 'line-comment-position': 0,
  182. // 强制使用一致的换行风格
  183. 'linebreak-style': 0,
  184. // 要求在注释周围有空行 ( 要求在块级注释之前有一空行)
  185. 'lines-around-comment': 0,
  186. // 这条规则要求或禁止围绕指令序言的空白换行符。此规则不强制执行有关各个指令之间空白换行符的任何约定。另外,它不需要在指令序言前留出空行,除非它们之前有评论。如果这是您想强制执行的样式,请使用填充块规则。
  187. 'lines-around-directive': 0,
  188. // 要求或禁止class成员之间的空行
  189. 'lines-between-class-members': 0,
  190. // 强制执行嵌套块的最大深度,以降低代码复杂度。"max"(默认为4)
  191. 'max-depth': [2,10],
  192. // 强制一行的最大长度
  193. 'max-len': [1, 2000, { 'ignoreTemplateLiterals': true }],
  194. // 强制最大行数
  195. 'max-lines': 0,
  196. // 强制回调函数最大嵌套深度 5层
  197. 'max-nested-callbacks': [2, 5],
  198. // 强制 function 定义中最多允许的参数数量
  199. 'max-params': 0,
  200. // 强制 function 块最多允许的的语句数量
  201. 'max-statements': [2, 200],
  202. // 强制每一行中所允许的最大语句数量
  203. // fixed: 对于单行 if 语句不需要
  204. 'max-statements-per-line': 0,
  205. // 强化多行评论的特定风格。
  206. 'multiline-comment-style': 0,
  207. // 强制或禁止三元表达式的操作数之间的换行符
  208. 'multiline-ternary': 0,
  209. // 要求构造函数首字母大写 (要求调用 new 操作符时有首字母大小的函数,允许调用首字母大写的函数时没有 new 操作符。)
  210. 'new-cap': 0,
  211. // 要求调用无参构造函数时有圆括号
  212. 'new-parens': 0,
  213. // 要求或禁止 var 声明语句后有一行空行
  214. 'newline-after-var': 0,
  215. // 要求 return 语句之前有一空行
  216. 'newline-before-return': 0,
  217. // 要求方法链中每个调用都有一个换行符
  218. 'newline-per-chained-call': 0,
  219. // 禁用 alert、confirm 和 prompt
  220. 'no-alert': 2,
  221. // 禁止使用 Array 构造函数
  222. 'no-array-constructor': 0,
  223. // 不允许await在循环体内使用。
  224. 'no-await-in-loop': 0,
  225. // 禁用按位运算符
  226. 'no-bitwise': 0,
  227. // 不允许调用和构造Buffer()构造函数。
  228. 'no-buffer-constructor': 0,
  229. // 禁用 arguments.caller 或 arguments.callee
  230. 'no-caller': 2,
  231. // 不允许在 case 子句中使用词法声明
  232. 'no-case-declarations': 0,
  233. // 不允许 catch 子句的参数与外层作用域中的变量同名
  234. 'no-catch-shadow': 2,
  235. // 禁止修改类声明的变量
  236. 'no-class-assign': 2,
  237. // 检测对象文字中的尾随逗号。因此,只要遇到对象字面上的尾随逗号,就会发出警告。
  238. // 'no-comma-dangle': 2,
  239. // 针对试图与-0进行比较的代码发出警告,因为这不会按预期工作。也就是说,像x === -0这样的代码将通过+0和-0。作者可能打算 Object.is(x,-0)。
  240. 'no-compare-neg-zero': 2,
  241. // 禁止条件表达式中出现赋值操作符
  242. 'no-cond-assign': 2,
  243. // 不允许箭头功能,在那里他们可以混淆的比较
  244. 'no-confusing-arrow': 0,
  245. // 禁用 console
  246. 'no-console': 0,
  247. // 禁止修改 const 声明的变量
  248. 'no-const-assign': 2,
  249. // 禁止在条件中使用常量表达式
  250. // if (false) {
  251. // doSomethingUnfinished();
  252. // } //cuowu
  253. 'no-constant-condition': 2,
  254. // 禁用 continue 语句
  255. 'no-continue': 0,
  256. // 禁止在正则表达式中使用控制字符 :new RegExp('\x1f')
  257. 'no-control-regex': 0,
  258. // 禁用 debugger
  259. 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
  260. // 禁止删除变量
  261. 'no-delete-var': 2,
  262. // 禁止除法操作符显式的出现在正则表达式开始的位置
  263. 'no-div-regex': 1,
  264. // 禁止 function 定义中出现重名参数
  265. 'no-dupe-args': 2,
  266. // 禁止类成员中出现重复的名称
  267. 'no-dupe-class-members': 2,
  268. // 禁止对象字面量中出现重复的 key
  269. 'no-dupe-keys': 2,
  270. // 禁止重复的 case 标签
  271. 'no-duplicate-case': 2,
  272. // 不允许复制模块的进口
  273. 'no-duplicate-imports': 2,
  274. // 禁止 if 语句中有 return 之后有 else
  275. 'no-else-return': 0,
  276. // 禁止空语句块
  277. 'no-empty': 0,
  278. // 禁止在正则表达式中使用空字符集 (/^abc[]/)
  279. 'no-empty-character-class': 2,
  280. // 禁止出现空函数.如果一个函数包含了一条注释,它将不会被认为有问题。
  281. 'no-empty-function': 0,
  282. // 禁止使用空解构模式no-empty-pattern
  283. 'no-empty-pattern': 2,
  284. // 禁止在没有类型检查操作符的情况下与 null 进行比较
  285. 'no-eq-null': 0,
  286. // 禁用 eval()
  287. 'no-eval': 2,
  288. // 禁止对 catch 子句的参数重新赋值
  289. 'no-ex-assign': 2,
  290. // 禁止扩展原生类型
  291. 'no-extend-native': 0,
  292. // 禁止不必要的 .bind() 调用
  293. 'no-extra-bind': 0,
  294. // 禁止不必要的布尔转换
  295. 'no-extra-boolean-cast': 1,
  296. // 禁用不必要的标签
  297. 'no-extra-label: ': 0,
  298. // 禁止不必要的括号 //(a * b) + c;//报错
  299. 'no-extra-parens': 0,
  300. // 禁止不必要的分号
  301. 'no-extra-semi': 0,
  302. // 禁止 case 语句落空
  303. 'no-fallthrough': 0,
  304. // 禁止数字字面量中使用前导和末尾小数点
  305. 'no-floating-decimal': 2,
  306. // 禁止对 function 声明重新赋值
  307. 'no-func-assign': 2,
  308. // 此规则不允许修改只读全局变量。
  309. 'no-global-assign': 2,
  310. // 禁止使用短符号进行类型转换(!!fOO)
  311. // 部分老函数
  312. 'no-implicit-coercion': 0,
  313. // 禁止在全局范围内使用 var 和命名的 function 声明
  314. 'no-implicit-globals': 0,
  315. // 禁止使用类似 eval() 的方法
  316. 'no-implied-eval': 2,
  317. // 禁止在代码行后使用内联注释
  318. 'no-inline-comments': 0,
  319. // 禁止在嵌套的块中出现 function 或 var 声明
  320. 'no-inner-declarations': [0,'both'],
  321. // 禁止 RegExp 构造函数中无效的正则表达式字符串
  322. 'no-invalid-regexp': 2,
  323. // 禁止 this 关键字出现在类和类对象之外
  324. 'no-invalid-this': 0,
  325. // 禁止在字符串和注释之外不规则的空白
  326. // fixed: 内容文本的空白不可避免
  327. 'no-irregular-whitespace': 0,
  328. // 禁用 __iterator__ 属性
  329. 'no-iterator': 2,
  330. // 不允许标签与变量同名
  331. 'no-label-var': 2,
  332. // 禁用标签语句
  333. 'no-labels': 2,
  334. // 禁用不必要的嵌套块
  335. 'no-lone-blocks': 2,
  336. // 禁止 if 作为唯一的语句出现在 else 语句中
  337. 'no-lonely-if': 0,
  338. // 禁止在循环中出现 function 声明和表达式
  339. 'no-loop-func': 0,
  340. // 禁用魔术数字(3.14什么的用常量代替)
  341. 'no-magic-numbers': 0,
  342. // 禁止混合使用不同的操作符
  343. 'no-mixed-operators': 0,
  344. // 禁止混合常规 var 声明和 require 调用
  345. 'no-mixed-requires': 1,
  346. // 不允许空格和 tab 混合缩进
  347. 'no-mixed-spaces-and-tabs': 2,
  348. // 不允许在单个语句中使用多个分配。a = b = c = d;
  349. 'no-multi-assign': 0,
  350. // 禁止使用多个空格
  351. 'no-multi-spaces': 2,
  352. // 禁止使用多行字符串,在 JavaScript 中,可以在新行之前使用斜线创建多行字符串
  353. 'no-multi-str': 0,
  354. // 不允许多个空行
  355. 'no-multiple-empty-lines': [2, {'max': 2}],
  356. // 不允许否定的表达式
  357. 'no-negated-condition': 0,
  358. // 禁止在 in 表达式中出现否定的左操作数
  359. 'no-negated-in-lhs': 0,
  360. // 不允许使用嵌套的三元表达式 var foo = bar ? baz : qux === quxx ? bing : bam;
  361. 'no-nested-ternary': 1,
  362. // 禁止在非赋值或条件语句中使用 new 操作符
  363. 'no-new': 0,
  364. // 禁止对 Function 对象使用 new 操作符
  365. 'no-new-func': 1,
  366. // 禁止使用 Object 的构造函数
  367. 'no-new-object': 0,
  368. // 禁止调用 require 时使用 new 操作符
  369. 'no-new-require': 2,
  370. // 禁止 Symbol 的构造函数
  371. 'no-new-symbol': 1,
  372. // 禁止对 String,Number 和 Boolean 使用 new 操作符
  373. 'no-new-wrappers': 0,
  374. // 禁止把全局对象 (Math 和 JSON) 作为函数调用 错误:var math = Math();
  375. 'no-obj-calls': 2,
  376. // 禁用八进制字面量
  377. 'no-octal': 2,
  378. // 禁止在字符串中使用八进制转义序列
  379. 'no-octal-escape': 2,
  380. // 不允许对 function 的参数进行重新赋值
  381. 'no-param-reassign': 0,
  382. // 禁止对 __dirname 和 __filename进行字符串连接
  383. 'no-path-concat': 0,
  384. // 禁止使用一元操作符 ++ 和 --
  385. 'no-plusplus': 0,
  386. // 禁用 process.env
  387. 'no-process-env': 0,
  388. // 禁用 process.exit()
  389. 'no-process-exit': 1,
  390. // 禁用 __proto__ 属性
  391. 'no-proto': 0,
  392. // 禁止直接使用 Object.prototypes 的内置属性
  393. 'no-prototype-builtins': 0,
  394. // 禁止使用 var 多次声明同一变量
  395. 'no-redeclare': 0,
  396. // 禁止正则表达式字面量中出现多个空格
  397. 'no-regex-spaces': 1,
  398. // 禁用特定的全局变量
  399. 'no-restricted-globals': 0,
  400. // 允许指定模块加载时的进口
  401. 'no-restricted-imports': 0,
  402. // 允许你指定你不想在你的应用程序中使用的模块。
  403. 'no-restricted-modules': 0,
  404. // 对象上的某些属性可能在代码库中被禁止。这对于取消API或限制模块方法的使用很有用。例如,您可能希望使用不允许describe.only使用摩卡或者告诉人们使用时Object.assign代替_.extend。
  405. 'no-restricted-properties': 0,
  406. // 禁止使用特定的语法
  407. 'no-restricted-syntax': 0,
  408. // 禁用指定的通过 require 加载的模块
  409. 'no-return-assign': 0,
  410. // 禁止 return await ;这个规则旨在防止由于缺乏对async function语义的理解而导致的可能的常见性能危害。
  411. 'no-return-await': 2,
  412. // 禁止使用 javascript: url
  413. 'no-script-url': 0,
  414. // 禁止自我赋值
  415. 'no-self-assign': 2,
  416. // 禁止自身比较
  417. 'no-self-compare': 2,
  418. // 禁用逗号操作符
  419. 'no-sequences': 2,
  420. // 禁止 var 声明 与外层作用域的变量同名
  421. 'no-shadow': 0,
  422. // 禁止覆盖受限制的标识符
  423. 'no-shadow-restricted-names': 2,
  424. // 禁用稀疏数组
  425. 'no-sparse-arrays': 2,
  426. // 禁用同步方法
  427. 'no-sync': 0,
  428. // 不允许使用制表符
  429. 'no-tabs': 2,
  430. // 警告常规字符串包含看起来像模板字面占位符的内容。"Hello ${name}!";
  431. 'no-template-curly-in-string': 0,
  432. // 不允许使用三元操作符
  433. 'no-ternary': 0,
  434. // 禁止在构造函数中,在调用 super() 之前使用 this 或 super
  435. 'no-this-before-super': 2,
  436. // 禁止抛出非异常字面量
  437. 'no-throw-literal': 2,
  438. // 禁用行尾空格
  439. 'no-trailing-spaces': 0,
  440. // 禁用未声明的变量,除非它们在 /*global */ 注释中被提到
  441. 'no-undef': 2,
  442. // 禁止将变量初始化为 undefined
  443. 'no-undef-init': 2,
  444. // 禁止将 undefined 作为标识符
  445. 'no-undefined': 0,
  446. // 禁止标识符中有悬空下划线_bar
  447. 'no-underscore-dangle': 0,
  448. // 禁止出现令人困惑的多行表达式
  449. 'no-unexpected-multiline': 0,
  450. // 禁用一成不变的循环条件
  451. 'no-unmodified-loop-condition': 2,
  452. // 禁止可以在有更简单的可替代的表达式时使用三元操作符
  453. 'no-unneeded-ternary': 0,
  454. // 禁止在return、throw、continue 和 break语句之后出现不可达代码
  455. /*
  456. function foo() {
  457. return true;
  458. console.log('done');
  459. }//错误
  460. */
  461. 'no-unreachable': 2,
  462. // 禁止在 finally 语句块中出现控制流语句
  463. 'no-unsafe-finally': 0,
  464. // 不允许否定关系运算符的左操作数 disallow negating the left operand of relational operators
  465. 'no-unsafe-negation': 2,
  466. // 禁止出现未使用过的表达式
  467. 'no-unused-expressions': 0,
  468. // 禁用未使用过的标签
  469. 'no-unused-labels': 2,
  470. // 禁止出现未使用过的变量
  471. 'no-unused-vars': 0,
  472. // 允许在变量定义之前使用它们 (0: 允许, 2: 不允许)
  473. 'no-use-before-define': 0,
  474. // 禁止不必要的 .call() 和 .apply()
  475. 'no-useless-call': 2,
  476. // 禁止不必要的计算性能键对象的文字
  477. 'no-useless-computed-key': 2,
  478. // 禁止不必要的字符串字面量或模板字面量的连接
  479. 'no-useless-concat': 0,
  480. // ES2015 会提供默认的类构造函数。因此,没有必要提供一个空构造函数或一个简单地委托给它的父类的构造函数,
  481. 'no-useless-constructor': 2,
  482. // 禁用不必要的转义字符
  483. 'no-useless-escape': 0,
  484. // 不允许将导入、导出和解构分配重命名为相同的名称。
  485. 'no-useless-rename': 2,
  486. // 多余的return语句。
  487. 'no-useless-return': 0,
  488. // 要求使用 let 或 const 而不是 var
  489. 'no-var': 0,
  490. // 禁用 void 操作符
  491. 'no-void': 2,
  492. // 禁止在注释中使用特定的警告术语
  493. 'no-warning-comments': 0,
  494. // 禁止属性前有空白
  495. 'no-whitespace-before-property': 2,
  496. // 禁用 with 语句
  497. 'no-with': 1,
  498. // 当写if,else,while,do-while,和for语句,身体部分可以是单个语句而不是块。为这些单一语句强制执行一个一致的位置会很有用。
  499. 'nonblock-statement-body-position': 1,
  500. // 强制花括号内换行符的一致性
  501. 'object-curly-newline': 0,
  502. // 强制在花括号中使用一致的空格
  503. 'object-curly-spacing': 0,
  504. // 强制将对象的属性放在不同的行上
  505. 'object-property-newline': 0,
  506. // 要求或禁止对象字面量中方法和属性使用简写语法
  507. 'object-shorthand': 0,
  508. // 强制函数中的变量要么一起声明要么分开声明
  509. 'one-var': 0,
  510. // 要求或禁止在 var 声明周围换行
  511. 'one-var-declaration-per-line': 0,
  512. // 要求或禁止在可能的情况下要求使用简化的赋值操作符
  513. 'operator-assignment': 0,
  514. // 强制操作符使用一致的换行符
  515. 'operator-linebreak': 0,
  516. // 要求或禁止块内填充
  517. 'padded-blocks': 0,
  518. // 所有return语句之前需要空行,如换行前换行符规则。
  519. 'padding-line-between-statements': 0,
  520. // 要求使用箭头函数作为回调
  521. 'prefer-arrow-callback': 0,
  522. // 要求使用 const 声明那些声明后不再被修改的变量
  523. 'prefer-const': 2,
  524. // 采用两组配置对象。第一个对象参数决定了规则适用的解构类型
  525. 'prefer-destructuring': 0,
  526. // 禁止调用parseInt()或Number.parseInt()使用两个参数调用:一个字符串; 和2(二进制),8(八进制)或16(十六进制)的基数选项。
  527. 'prefer-numeric-literals': 2,
  528. // 确保承诺只被Error对象拒绝。
  529. 'prefer-promise-reject-errors': 0,
  530. // 要求在合适的地方使用 Reflect 方法
  531. 'prefer-reflect': 0,
  532. // Suggest using the rest parameters instead of arguments
  533. 'prefer-rest-params': 2,
  534. // 要求使用扩展运算符而非 .apply()
  535. 'prefer-spread': 2,
  536. // 最大属性在新的一行
  537. "max-attributes-per-line": 0,
  538. "vue/max-attributes-per-line": 0,
  539. // 要求使用模板字面量而非字符串连接
  540. // 老代码或使用习惯
  541. 'prefer-template': 0,
  542. // 要求对象字面量属性名称用引号括起来
  543. 'quote-props': 0,
  544. // 强制使用一致的反勾号、双引号或单引号
  545. 'quotes': 0,
  546. // 强制在parseInt()使用基数参数
  547. 'radix': 0,
  548. // 异步函数必须具有await表达式
  549. 'require-await': 2,
  550. // 要求使用 JSDoc 注释
  551. 'require-jsdoc': 0,
  552. // 要求generator 函数内有 yield
  553. 'require-yield': 2,
  554. // enforce spacing between rest and spread operators and their expressions
  555. 'rest-spread-spacing': 0,
  556. // 要求或禁止使用分号而不是 ASI(这个才是控制行尾部分号的,)
  557. 'semi': 0,
  558. // 强制分号之前和之后使用一致的空格
  559. 'semi-spacing': 0,
  560. // 强制分号位于配置的位置。
  561. 'semi-style': 0,
  562. // 强制模块内的 import 排序
  563. 'sort-imports': 0,
  564. // 所有属性定义并验证所有变量是按字母顺序排序的。
  565. 'sort-keys': 0,
  566. // 要求同一个声明块中的变量按顺序排列
  567. 'sort-vars': 0,
  568. // 强制在块之前使用一致的空格
  569. 'space-before-blocks': [2,'always'],
  570. // 强制在 function的左括号之前使用一致的空格
  571. 'space-before-function-paren': [0,'always'],
  572. // 强制在圆括号内使用一致的空格
  573. 'space-in-parens': [2,'never'],
  574. // 要求操作符周围有空格
  575. 'space-infix-ops': 2,
  576. // 强制在一元操作符前后使用一致的空格
  577. 'space-unary-ops': 2,
  578. // 强制在注释中 // 或 /* 使用一致的空格
  579. 'spaced-comment': 0,
  580. // 要求或禁止使用严格模式指令
  581. 'strict': 0,
  582. // switch语句内的空格
  583. 'switch-colon-spacing': 2,
  584. // var foo = Symbol("some description"); 一定要有描述
  585. 'symbol-description': 2,
  586. // 要求或禁止模板字符串中的嵌入表达式周围空格的使用
  587. 'template-curly-spacing': [2, 'never'],
  588. // 模板标签函数与其模板文字之间是否有空格
  589. 'template-tag-spacing': 0,
  590. // 要求或禁止 Unicode BOM
  591. 'unicode-bom': 0,
  592. // 不允许比较'NaN'。判断数字是否是NaN,得用isNaN
  593. 'use-isnan': 2,
  594. // 强制使用有效的 JSDoc 注释
  595. 'valid-jsdoc': 0,
  596. // 强制 typeof 表达式与有效的字符串进行比较
  597. // typeof foo === 'undefimed' 错误
  598. 'valid-typeof': 2,
  599. // 要求所有的 var 声明出现在它们所在的作用域顶部
  600. 'vars-on-top': 0,
  601. // 要求 IIFE 使用括号括起来
  602. 'wrap-iife': 0,
  603. // 要求正则表达式被括号括起来
  604. 'wrap-regex': 0,
  605. // 强制在 yield* 表达式中 * 周围使用空格
  606. 'yield-star-spacing': 2,
  607. // 要求或禁止 “Yoda” 条件
  608. 'yoda': 0,
  609. }
  610. }