특정 파일에 대한 eslint 규칙 해제


404

전체 파일에 대해 eslint 규칙을 해제 할 수 있습니까? 다음과 같은 것 :

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

특정 파일에서 해당 파일에 대해 정상으로 간주되는 많은 장소에서 특정 규칙을 위반하고 있지만 자주 사용하지 않으려는 경우 전체 프로젝트에 대한 규칙이나 해당 특정 파일에 대한 다른 규칙을 비활성화하고 싶지 않습니다.


1
다음과 같이 파일의 첫 줄로 규칙을 추가 할 수 있습니다. / * eslint no-use-before-define : 2 * /
joaumg

2
완벽 해, 그거 고마워. 방금 문서의 섹션을 간과했습니다. eslint.org/docs/user-guide/configuring.html#configuring-rules
Tomas Kulich

답변:


404

구성을 파일 맨 위에 배치하여 파일에 대한 특정 규칙을 끄거나 변경할 수 있습니다.

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

or

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

더 많은 정보


8
이와 같은 .eslintrc모든 파일 특정 규칙을 파일 맨 위에 적용 하는 규칙을 넣을 수있는 방법 이 있습니까?
Jeremy

9
@ Jeeremy 내 대답을 참조하십시오. .eslintignore프로젝트 루트 디렉토리에 파일 을 추가하기 만하면 됩니다.
prograhammer 2016

어떻게 작동하는 것 같다하지 않는 HTML 또는 EJS 파일에 대한 .eslintignore/* eslint no-use-before-define: 0 */ // --> OFF중?
Jeet

한 줄에 여러 번 무시를 수행 할 수 있습니까?
cheshireoctopus

4
내가 시도 / * eslint-비활성화 규칙 이름 * / 그리고 일
마르코스 페레이라를

304

파일에 대한 특정 규칙을 비활성화하려면

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

eslint에는 한 줄 주석이 작동하지 않는 버그가 있습니다.

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

이 게시물을 확인


28
이를 통해 no-use-before-define무시하려는 규칙뿐만 아니라 해당 블록 내의 모든 eslint 규칙이 비활성화됩니다.
Jeremy

13
기본적으로 그것은 전체 아이디어입니다. 문제는 " 전체 파일에 대해 eslint 규칙을 해제 할 수 있습니까?"
Wahome

27
@Wahome " 전체 파일에 대해 eslint 규칙 을 해제 할 수 있습니까?" 단어 규칙은 단수 입니다. 귀하의 답변은 모든 규칙을 복수로 해제합니다 .
spencer.sm

8
설명에서 그는 특정 규칙을 비활성화하는 것과 같은 무언가를 원한다고 언급했다. 다시 질문을 읽으십시오!
Marwen Trabelsi

5
사실, 이것은 전체 질문을 다룰 수는 없지만,이 스레드는 인터넷 검색에서 "파일을 무시합니다"
Robin Métral

143

프로젝트의 루트 디렉토리에 파일 을 작성하여 특정 파일 및 디렉토리무시하도록 ESLint에 지시 할 수 있습니다 .eslintignore.

.eslintignore

build/*.js
config/*.js
bower_components/foo/*.js

무시 패턴은 .gitignore사양 에 따라 작동합니다 . (편집기를 다시 시작하는 것을 잊지 마십시오.)


10
이 파일에서 특정 규칙 만 무시할 수 있습니까?
J. Hesters

나는 찬성 투표 것이라고하지만 내 대답은 아래에 적은 점수가 : D
오지

2
아주 좋아요! **를 사용하여 디렉토리, 서브 디렉토리, 서브 디렉토리에 파일을 재귀 적으로 추가 할 수도 있습니다. 예를 들면 다음과 같습니다 spec/javascripts/**/*.js..
Victor

완벽-이는 자동 생성되고 자주 변경되는 파일에 특히 유용합니다 (AWS의 Amplify 또는 MobileHub를 사용하는 경우 aws-exports.js와 같은)
bogan27

이것은 여전히 ​​경고를줍니다
dan-klasson

117

다음과 같은 규칙을 비활성화 / 활성화 할 수도 있습니다.

/* eslint-disable no-use-before-define */
... code that violates rule ...
/* eslint-enable no-use-before-define */

eslint-disable-line질문에서 언급 한 것과 유사합니다 . 복잡한 규칙 구성을 다시 활성화 할 때 복원하지 않으려는 경우 더 나은 방법 일 수 있습니다.


eslint 구성에서 정의한 수준 (경고, 오류)을 복원하므로이 방법을 선호합니다.
Jankapunkt

이것은 나를 위해 일한 솔루션입니다. 규칙을 껐다가 켜도 작동하지 않습니다.
JoshJoe

65

무시하려는 규칙 수 (모두 또는 일부)와 사용 안함 범위 (라인, 파일, 모든 위치)에 따라 2 × 3 = 6 개의 사례가 있습니다.


1) "모든 규칙"비활성화

사례 1.1 : "하나 이상의 라인"에 대해 "모든 규칙"을 비활성화하려는 경우

Put `/* eslint-disable-line */` at the **end of the line(s)**, 
or `/* eslint-disable-next-line */` right **before the line**.

사례 1.2 : "하나의 파일"에 대해 "모든 규칙"을 비활성화하려는 경우

Put the comment of `/* eslint-disable */` at the top of the file.

사례 1.3 : "일부 파일"에 대해 "모든 규칙"을 비활성화하려는 경우

이를 수행 할 수있는 3 가지 방법이 있습니다.

  1. 1.2 /* eslint-disable */를 사용하여 파일 위에 하나씩 추가 할 수 있습니다 .
  2. 에 파일 이름을 넣을 수 있습니다 .eslintignore. 무시하려는 경로 가있는 경우 특히 효과적 입니다. (예 :apidoc/** )
  3. 또는 별도의 .eslintignore파일을 원하지 않으면 여기에 지시 "eslintIgnore": ["file1.js", "file2.js"]package.json대로 추가 할 수 있습니다 .

2) "일부 규칙"비활성화

사례 2.1 : "하나 이상의 라인"에 대해 "일부 규칙"을 비활성화하려는 경우

You can put `/* eslint-disable-line quotes */` (replace `quotes` with your rules) at the end of the line(s), 
or `/* eslint-disable-next-line no-alert, quotes, semi */` before the line.

사례 2.2 : "하나의 파일"에 대해 "일부 규칙"을 비활성화하려는 경우

Put the `/* eslint-disable no-use-before-define */` comment at the top of the file.  

더 많은 예제는 여기에 있습니다 .

## 사례 2.3 : "일부 파일"에 대해 "일부 규칙"을 사용하지 않으려 고합니다.

덜 간단합니다. 당신은에 넣어해야 "excludedFiles"의 목적 "overrides"당신의 섹션 .eslintrc으로 지시 여기 .


4
추신. 사례 5 : "모든 파일"에 대해 "모든 규칙"을 비활성화하려고합니다- npm uninstall eslint! : p
Aidin 2016 년

2
또한 /* */스타일 주석 만 사용할 수 있습니다 eslint-disable. // eslint-disable no-use-before-define작동하지 않습니다. 그것은 작동 // eslint-disable-next-line하지만.
Aidin

56

.eslintrc.js 구성 파일에 "재정의"를 추가하는 것이 좋습니다. 예를 들어 Actions로 끝나는 모든 js 파일에 대해 camelcase 규칙을 비활성화하지 않으려면 .eslintrc.js의 규칙 범위 뒤에이 코드를 추가하십시오.

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

특정 파일에 대한 OP의 질문에는 대답하지 않습니다.
wscourge

파일 내 작업을 수행하는 훌륭한 대안입니다.
Josef Engelfrost

8
대단히 감사하는 답변!
Adam

잘 작동합니다! IMHO 이것은 정답입니다. 이 방법은 eslintrc 파일에 유지되며 (소스 파일을 깨끗하게 유지) 특정 파일에 대한 특정 규칙의 동작을 무시할 수 있습니다. +1
akagixxer

48

파일에서 규칙 경고를 일시적으로 비활성화하려면 다음 형식의 블록 주석을 사용하십시오.

/* eslint-disable */

ESLint가

/* eslint-enable */

의견에 도달했습니다.

이 주제에 대한 자세한 내용은 여기를 참조하십시오 .


36

허용 된 답변이 저에게 효과가 없었습니다 (다른 버전의 eslint ...? 사용하고 있습니다 eslint v3.19.0). 그러나 다음과 같은 해결책을 찾았습니다 ...

파일 맨 위에 다음을 배치하십시오.

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

전체 파일에 대한 규칙이 비활성화됩니다.


7
... 또는 여러 개/* eslint-disable no-unused-vars, no-console, import/no-extraneous-dependencies, spaced-comment */
Frank Nocke

1
똑같이, 받아 들인 대답이 효과가 없었습니다. 두 차이 : 변화 eslinteslint-disable놓기 : 0. eslint@4.19.1 사용.
헬라 탄

10
/*eslint-disable */

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

/*eslint-enable */

그것은 나를 위해 일했다


4
이를 통해 no-use-before-define무시하려는 규칙뿐만 아니라 해당 블록 내의 모든 eslint 규칙이 비활성화됩니다.
Jeremy

감사합니다. 또한이 질문에 대한 답을 고려하십시오. 모든 규칙을 비활성화하면 의도 된 규칙도 비활성화됩니다
Fabiano Soriani

7

예를 들어 파일 맨 위에 이것을 넣을 수 있습니다.

/* eslint-disable no-console */

1

다음을 사용하여 파일에 대한 특정 규칙을 해제 할 수 있습니다 /*eslint [<rule: "off"], >]*/

/* eslint no-console: "off", no-mixed-operators: "off" */

버전: eslint@4.3.0


하나의 완전한 파일에 대해 하나의 규칙 만 비활성화해야하는 경우 완벽하게 작동했습니다.
Umakant Patil

0

eslint overrides 속성을 구성하여 아래와 같이 glob 패턴과 일치하는 파일의 특정 규칙을 해제 할 수 있습니다.

여기서는 no-duplicate-string모든 파일을 테스트하기위한 규칙을 해제하고 싶습니다 .

overrides: [
  {
    files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
    rules: {
      'sonarjs/no-duplicate-string': 'off'
    }
  }
]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.