JSLint / JSHint에게 이미 정의 된 전역 변수를 알리는 방법


79

내 프로젝트에는 컨테이너로 작동하는 몇 가지 전역 변수가 있습니다.

MyProject.MyFreature.someFunction = function() { ... }

그런 다음 사이트 전체에서 해당 스크립트를 사용하고 JSLint / JSHint는 이에 대해 불평합니다.

'MyProject'가 정의되지 않았습니다.

모든 JavaScript 파일로 이동하여 그 /*global MyProject*/위에 주석 을 추가 할 수 있다는 것을 알고 있습니다 . 그러나 나는이 주석을 추가하여 파일별로 이동할 필요가 없도록 일종의 구성 파일에서 해당 주석을 정의하는 방법을 찾고 있습니다.

옵션에 어떤 종류 config/jshint.yml가 있으면 좋을 것입니다.


웹 애플리케이션 (예 : jshint.com ) 을 사용하고 있습니까? 아니면 노드로 실행하고 있습니까?
RobH

나는 레이크로 작업으로 실행하는 데 사용하고 있습니다. 사실 나는 jshint_on_rails를 사용하고 있습니다
에밀리 Zilocchi

내가 들어 보지 못한 'config / jshint.yml'파일을 설명합니다.
RobH

답변:


81

JSHint의 경우 다음을 사용 .jshintrc하여 프로젝트 디렉토리에 만들 수 있습니다.

{
  "globals": { "MyProject": true }
}

2
감사. PREDEF : 나는 jshint_on_rails을 사용하고 있기 때문에, 나는 단지이 옵션을 설정할 수 있습니다 '에 MyProject'에를 설정 / jshint.yml
에밀리 Zilocchi

당신은 : 귀하의 질문에 언급해야
Epeli

당신 말이 맞아요, 그 부분을 놓쳤습니다. 다음 번에 염두에 두겠습니다. 감사합니다
Emiliano

11
이것을 사용하는 것에 대한 작은 메모 : 및 false같은 라이브러리에 넣어 . 그러나 .NET과 같이 자신을 재정의하려는 글로벌 에 대해 이것을 적용 하십시오 . angular$truemyApp
polyclick 2014 년

57

이것은 글로벌 전용입니다.

/* global MyProject */

귀하의 경우에는

/* exported MyProject */

1
하나의 JavaScript 파일로 작업하는 경우 좋은 대답입니다. 감사합니다!

4

JSLint에는 옵션 아래에 텍스트 영역이 있습니다 predefine global variables here. 검사를 실행하기 전에 거기에 변수 이름을 추가하십시오.

JSHint는 전역 변수 추가를 허용하지 않지만 When variable is undefined해당 경고를 억제하는 옵션을 선택 취소 할 수 있습니다 .

JSHint 라이브러리에는 라이브러리로 실행하는 경우 전역 매개 변수도 있습니다. . . 여기에 세부 정보 : http://jshint.com/docs/


웹 인터페이스를 사용하는 것 같지 않습니다. – But I'm looking a way to define that comment in some sort of config file so I don't have to go file by file adding this comment.그리고Some kind on option in the config/jshint.yml would be nice
Ian

1
방금 config / jshint.yml 아래의 'predef'속성을 찾았습니다. 쉼표로 구분 된 속성입니다. 감사!
Emiliano Zilocchi

1
predef JSLint에도 언급할만한 가치 가 있습니다 .
러핀

Web Essentials가 포함 된 Visual Studio 2013과 솔루션 폴더 및 프로젝트 하위 폴더의 기존 계층이 제공되면 솔루션 루트 폴더에 넣을 수 있습니다.
George

부당한 반대표. 이 질문은이 답변이 남을 때까지 Rails가 사용 중임을 명확하게하지 않았습니다. +1
superluminary
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.