Sonar 3.4.1 を使用して、継続的インテグレーション サーバーで JavaScript を分析しています。
多くのカスタム ルールを追加しました。たとえば、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 (Abstract Syntax Trees) に関するリソースがあれば役立つので、将来他のルールでこれを理解することができます。(人に魚の釣り方を教えたり…)