我们正在使用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()
的使用情况?
ASTs(抽象语法树)上的任何资源都会有所帮助,所以我可以在将来解决其他规则问题。 (教一个人捕鱼和所有......)
答案 0 :(得分:2)
以下简单的XPath表达式适用于我:
//primaryExpression[@tokenValue = "alert"]