경고 'define'을 비활성화하는 방법은 JSHint 및 RequireJS를 사용하여 정의되지 않았습니다.


108

내 프로젝트에서 RequireJS AMD를 사용합니다. 내 프로젝트에서 jshint를 실행하면 다음과 같은 오류가 발생합니다.

AMD 스크립트에서

 'define' is not defined.

Mocha 테스트 케이스에서

 'describe' is not defined.
 'it' is not defined.

jshint에서이 경고를 제거하는 방법은 무엇입니까?

답변:


187

약간 확장하기 .jshintrc위해 다음은 Mocha에 대한 설정입니다.

{
  ....
  "globals"   : {
    /* MOCHA */
    "describe"   : false,
    "it"         : false,
    "before"     : false,
    "beforeEach" : false,
    "after"      : false,
    "afterEach"  : false
  }
}

JSHint 문서 에서 -false (기본값)는 변수가 읽기 전용임을 의미합니다.

특정 파일에 대해서만 전역을 정의하는 경우 다음을 수행 할 수 있습니다.

/*global describe, it, before, beforeEach, after, afterEach */

41
우리가 사용할 수 있습니다 {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
— gwokae

@bendytree 전역이 아닌 일부 파일 / 폴더에 대해 이러한 규칙을 추가 할 수 있는지 알고 있습니까?
— Gobliins

위의 @Gobliins Bohdan의 의견. 이 줄을 mocha 테스트 파일의 첫 번째 줄로 추가하면 해당 파일에 대해서만 규칙이 적용됩니다
— Isaac


12

자바 스크립트에 대한 jshint에서 정의되지 않은 경고를 피하려면 다음과 같은 주석을 추가하십시오.

/*global describe:true*/

옵션


8

이것을 .jshintrc에 추가하십시오.

"predef" : ["define"]   // Custom globals for requirejs

누군가가 왜 이것을 반대했는지 확실하지 않습니다. 나는 이것을 내 프로젝트에서 정확히 사용하고 있으며 다른 답변과 작품보다 깨끗합니다.
— Shital Shah 2014

19
PREDEF는 사용 전역을 depreceted입니다
— 조나단 아줄 레이에게

@JonathanAzulay jshint.com/docs/options/#predef 에서 사용 중단 메모를 찾지 못했습니다 . 나는 글로벌 글로벌 자바 스크립트를 예를 들어 각도, $, jQuery를 등등과 PREDEF은 윈도우, 문서 등의 암시 전역 개체에 사용할 수있는 등 콘솔 사용자 정의에 사용할 수 있다고 생각
— Amitesh

6

파티에 늦었지만 다음에서이 옵션을 사용하십시오 jshintrc.

"dojo": true

그리고 너는 붉은 경고없이 평화롭게 쉬리 라 ...


6

노드 js에서 작업하는 경우. 파일 시작 부분에이 두 줄을 추가하십시오.

/*jslint node: true */
"use strict";

이 질문은 JSHint 에 관한 것 입니다.
— PointedEars


1

Mocha로 WebStorm에서 JSHint를 실행하려는 경우 다음으로 이동하십시오.

WebStorm> 환경 설정> 언어 및 프레임 워크> JavaScript> 코드 품질 도구> JSHint

"환경"까지 아래로 스크롤하고 "Mocha"에 대한 정의를 설정하는 "Mocha"를 활성화하는 확인란을 선택했는지 확인합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.