Javascript 关闭特定文件的eslint规则

Javascript 关闭特定文件的eslint规则,javascript,configuration,lint,eslint,Javascript,Configuration,Lint,Eslint,是否可以关闭整个文件的eslint规则?例如: // eslint-disable-file no-use-before-define (类似于eslint disable line。)我经常会遇到这样的情况,在某个文件中,我在许多地方违反了一条特定的规则,这对该文件来说是正常的,但我不想为整个项目禁用规则,也不想为特定文件禁用其他规则。您可以通过将配置放在文件顶部来关闭/更改文件的特定规则 /* eslint no-use-before-define: 0 */ // --> OF

是否可以关闭整个文件的eslint规则?例如:

// eslint-disable-file no-use-before-define 

(类似于eslint disable line。)我经常会遇到这样的情况,在某个文件中,我在许多地方违反了一条特定的规则,这对该文件来说是正常的,但我不想为整个项目禁用规则,也不想为特定文件禁用其他规则。

您可以通过将配置放在文件顶部来关闭/更改文件的特定规则

/* eslint no-use-before-define: 0 */  // --> OFF

or

/* eslint no-use-before-define: 2 */  // --> ON

您还可以禁用/启用如下规则:

/* eslint-disable no-use-before-define */
... code that violates rule ...
/* eslint-enable no-use-before-define */
与问题中提到的
eslint禁用行
类似。如果您不想在重新启用复杂的规则配置时还原它,那么它可能是一种更好的方法

/* eslint-disable */

//suppress all warnings between comments
alert('foo');

/* eslint-enable */

这将禁用块中的所有eslint规则。

要禁用文件的特定规则:

/* eslint-disable no-use-before-define */
/* eslint-disable no-console */
注意,eslint中存在一个错误,其中单行注释不起作用-

// eslint-disable max-classes-per-file
// This fails!

您可以通过在项目的根目录中创建一个
.eslintignore
文件来告诉ESLint:

.eslintignore

build/*.js
config/*.js
bower_components/foo/*.js
忽略模式的行为符合
.gitignore
规范。
(别忘了重新启动编辑器。)

要临时禁用文件中的规则警告,请使用以下格式的块注释:

/* eslint-disable */
这将禁用ESLint,直到

/* eslint-enable */
记者就此发表了评论


您可以阅读有关此主题的更多信息。

接受的答案对我不起作用(可能是不同版本的eslint…?我使用的是
eslint v3.19.0
),但确实找到了以下解决方案

将以下内容放在文件顶部

/*eslint在定义之前禁用no use*/


这将禁用整个文件的规则

您可以使用
/*eslint[]*/

/*eslint无控制台:“关闭”,无混合操作员:“关闭”*/


版本:
eslint@4.3.0

您可以将此示例放在文件顶部:

/* eslint-disable no-use-before-define */
/* eslint-disable no-console */
最好在.eslintrc.js配置文件中添加“覆盖”。 例如,如果您不想对以操作结尾的所有js文件禁用camelcase规则,请在.eslintrc.js中的规则范围后添加此代码

"rules": {    
...........    
},
"overrides": [
 {
  "files": ["*Actions.js"],
     "rules": {
        "camelcase": "off"   
     }
 }
]

根据您想要忽略的规则的数量(全部或部分),以及禁用它的范围(行、文件、无处不在),我们有2×3=6个案例


1) 禁用“所有规则”
案例1.1:您想禁用“一行或多行”的“所有规则”

有两种方法可以做到这一点:

  • /*eslint禁用行*/
    放在行的末尾
  • /*eslint禁用下一行*/
    行前的右

  • 案例1.2:您想禁用“一个文件”的“所有规则”

    • /*eslint disable*/
      的注释放在文件顶部

    案例1.3:您想禁用“某些文件”的“所有规则”

    有三种方法可以做到这一点:

  • 您可以使用1.2,在文件顶部逐个添加
    /*eslint disable*/
  • 您可以将文件名放在
    .eslintignore
    中。这非常有效,尤其是当您有一条希望被忽略的路径时。(例如,
    apidoc/**
  • 或者,如果不想拥有单独的
    .eslintignore
    文件,可以添加
    “eslintinore”:[“file1.js”、“file2.js”]
    package.json
    中作为 指示

  • 2) 禁用“某些规则”
    案例2.1:您想禁用“一行或多行”的“某些规则”

    有两种方法可以做到这一点:

  • 您可以将
    /*eslint禁用行引号*/
    (用您的规则替换
    引号
    )放在行尾

  • /*eslint禁用下一行,行前无警报、引号、半*/


  • 案例2.2:您想为“一个文件”禁用“一些规则”

    • /*eslint disable no use置于文件顶部的define*/
      注释之前
    更多的例子


    案例2.3:您想为“某些文件”禁用“某些规则”

    • 这不那么直截了当。您应该按照说明将它们放在
      .eslintrc
      “overrides”
      部分的
      “excludedFiles”
      对象中

    您可以将eslint overrides属性配置为关闭与glob模式匹配的文件上的特定规则,如下所示

    在这里,我想关闭测试所有文件的
    无重复字符串
    规则

    覆盖:[
    {
    文件:[“***/\uuu测试”.[jt]s?(x)”,“***/?(*)+(规范测试)。[jt]s?(x)”,
    规则:{
    “sonarjs/无重复字符串”:“关闭”
    }
    }
    ]
    
    从今天起,答案对我不起作用,但将其放在文件顶部确实起作用

    /*eslint disable@typescript eslint/无未使用的变量*/
    
    重要的是要知道,至少在我的情况下,评论的类型会有所不同。前面的评论对我有效,但下面的无效:

    //eslint disable@typescript eslint/无未使用的变量
    
    只需在项目根目录中创建一个空文件
    .eslintignore
    ,然后键入要忽略的文件路径

    资料来源:


    忽略文件和目录

    要禁用文件夹内文件的特定规则,您需要使用
    .eslintrc
    配置文件的
    “覆盖”

    例如,如果要删除以下规则:

  • 定义前无需使用
  • 每个函数的最大行数
  • 对于以下主目录中的所有文件:

    /spec

    你可以加上这个