경고 '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.