3
JSLint,JSHint或其他一些開源靜態代碼分析工具是否支持添加用於代碼合規性的自定義規則,或者是否存在一些ECMAScript兼容的解析器,可用於使結果儘可能接近於下面的代碼段?例如,我想查看JavaScript代碼並列出調用哪些函數,如果它調用庫(或由智能手機提供的用於HTML5小部件的API)來註冊屬於該API名稱空間的所有內容,創建對象及其屬性的樹,以查看是否可以從可以追溯到的對象中調用函數,可能使用XML,JSON或其他結構化格式的輸出。使用JavaScript的自定義規則進行靜態分析?
例如說我有這個JavaScript代碼(它什麼都不是隻是爲參數的緣故):
jobs = mylibrary.getJobs();
found = jobs.find("Python");
list = found.convert("html");
我希望我的分析工具來得到這個:
{
"mylibrary": {
"jobs": {"maker":"getJobs", "parent": "mylibrary"},
"found": {"maker": "find", "parent": "jobs", "parameters": "Python"},
"list": {"maker": "convert", "parent": "found"}
}
}
您的意思是喜歡分析,但是會在您的HTML5內容中返回Analytics的XML數據?例如,監控所有人點擊HTML5音頻,然後用XML數據發送這些數據,以便導出到圖表等。 – TheBlackBenzKid 2012-08-06 09:30:19
@TheBlackBenzKid:我的意思是靜態分析(不是動態分析),而是代碼(包括.js和
我嘗試了一些可以從代碼訪問的JavaScript解釋器(在我的例子中是python)。所以像
pynoceros
,pynarcissus
或pyv8
這樣的口譯員可能會幫助我。這裏有關於如何安裝py8答案:https://stackoverflow.com/a/11879224/1577343
由於上述辦法我也沒有太多的成功,我更喜歡使用的ECMAScript的解析器的靜態分析解決方案。
靜態分析,儘可能使用JSLINT解析器(Run JSLint on a .js file from debugging console in chrome or firefox): 但我不知道如何進一步使用它。
來源
2012-08-07 12:43:55
PMD支持ECMAScript的靜態分析與自定義規則:
參考的旁邊
pmd/pmd-javascript/src/main/resources/rulesets/ecmascript at master · pmd/pmd
Analyzing Javascript with PMD Maven
PMD – PMD Properties
PMD – How to make a rule set
combine two PMD checks
Using regular expressions in PMD rules
PMD – IDE Integrations
來源
2017-07-14 16:06:08