1

우리는 우리의 연속 통합 서버에서 JavaScript를 분석하기 위해 Sonar 3.4.1을 사용하고 있습니다.alert()의 사용을위한 음향 깔깍 코딩 규칙

많은 맞춤 규칙을 추가했습니다. 예 : 디버깅 기능이있는 console.* 중 하나가 사용될 경우 차단 위반을 실행합니다.

예제 XPath 쿼리 :

//callExpression/memberExpression[count(*) = 3 and primaryExpression[@tokenValue = "console"] and identifierName[@tokenValue = "log"]] 

내가 alert(...)의 사용에 대한 규칙을 추가 할하지만 난 그게 제대로 작동하려면 얻을 수없는 것.

내가 예를 들어 같은 XPath 쿼리에 변화를 많이 시도했습니다

:

//callExpression/memberExpression[count(*) = 2 and primaryExpression[@tokenValue = "alert"]] 

내가 얻을 관리 할 수있는 최선 alert()의 발견되지만 $varName.alert() 같은 물건이다, 또한이다 거짓 긍정.

alert()의 용도는 어떻게 쿼리합니까?

AST (추상 구문 트리)의 모든 리소스가 도움이 될 것이므로 나중에 다른 규칙을 위해이를 파악할 수 있습니다. (물고기하는 사람과 모든 것을 가르쳐 ...)

답변

2

다음과 같은 간단한 XPath 식 나를 위해 작동합니다

//primaryExpression[@tokenValue = "alert"] 
+1

하나가 XPathes/검사의 확장 수집을 찾을 수있는 위치를 몰라 소나? (예 : JetBrains 제품의 JS 검사 또는 jshint/eslint 규칙 수집)? – SublimeYe