我们正在使用 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()
的结果是发现了 s,但也发现了类似的东西$varName.alert()
,这是一个误报。
如何alert()
自行查询使用情况?
AST(抽象语法树)上的任何资源都会有所帮助,因此我可以在将来为其他规则解决这个问题。(教一个人钓鱼等等……)