저는 (자바 스크립트 C/C++/Java에서) 자바 스크립트를 처음 사용했습니다.상호 의존적 인 자바 스크립트 파일로 구성된 프로젝트에서 jshint를 효율적으로 사용하는 방법은 무엇입니까?
linting은 좋은 일인 것처럼 보입니다. 그러나 많은 "정의되지 않은 변수/참조"오류가 발생하며 '좋은/효율적인 방법으로'문제를 해결하는 방법을 알지 못합니다.
내가 큰 프로젝트를 Html/Javascript로 작성했다고 가정 해 보겠습니다. 그래서 서로에 따라 JS-모듈, 예컨대 :
common_utils.js (depends on external lib d3.js)
app1.js (depends on common_utils.js)
app2.js (depends on common_utils.js as well)
오른쪽 app1.js에 /로 commmon_utils.js를 참조/포함하는 방법이 없습니다 우선으로 분할하려면? html 파일에서 동적로드 만 사용할 수 있습니다.
는 (? 내 말은 다시 (! ... 이상한의 종류되지 않습니다 할 수있는 가장 일상적인 일처럼 보인다 : 나는 C에서오고 ++/자바))
좋아, 충분히 공정 따라서 jslint/hint는 d3.js가로드 될 때만 common_utils.js가 사용된다는 것을 알 수있는 방법이 없습니다. 모두가 '네임 스페이스'에 있기 때문에 문제 없습니다, 나는 나의 jshint 구성에
글로벌 D3
를 추가하지 않습니다. 예쁘지는 않지만 괜찮습니다.
내 common_utils.js는 어떻습니까? 해당 파일의 모든 단일 함수 정의에 대해 linter 예외를 수동으로 추가하고 싶지 않습니다.
자바 스크립트로 프로젝트를 구성하고 개발하는 방법에 대해 완전히 잘못된 점이 있습니까?
시간 내 주셔서 감사합니다.
고맙습니다. 그것은 의미가 있으며, 내 문제를 해결하고 유용한 배경 정보를 제공합니다. 그러나 JSL/Hint는 정의 된 변수/네임 스페이스에 의해 '숨김'될 때 맞춤법이 틀린 함수 호출을 더 이상 인식하지 못합니다. 예 : 'd3.thereIsNoSuchFunction()'은 에러로보고되지 않습니다. 그 유감! – nandaloo
아, 전화하세요. JSLint는 파일에 따라 다르며 linter 범위 밖에서 함수 이름을 검사하는 것을 고려할 수도 있지만 좋은 결과를 얻을 수 있습니다. [Steve Sanderson의 블로그] (http://blog.stevensanderson.com/2012/08/17/using-jshint-inside-visual-studio-the-basics/) (KnockoutJS의 저자)는 JSHint 단점에 관한 관련된 점을 지적했다 : "자바 스크립트는 동적이기 때문에 런타임에 주어진 객체가 특정 속성을 가질 지 여부를 알 수 없습니다."그렇다고해도 좋은 경고가 좋을 것입니다. [WebStorm] (https://www.jetbrains.com/webstorm/)이이를 시도 할 수 있습니다. 기억할 수 없다. – ruffin
WebStorm은 그것을 '약한 경고'라고보고합니다. 그게 뭔가요. 스티브 샌더슨이 좋은 지적을했기 때문에 가능한 모든 것 같습니다. 다시 한번 감사드립니다. – nandaloo