javascriptのcall graphを作成したい

コードの理解のため、javascriptのcall graphを作成したいが、
なかなか全対応のソフトが見つからない。
ECMAScriptのバージョンの違いやビルドツール(webpack,gulp等)の違いを吸収しきれないようだ。

code2flow

例えばcode2flowがあるが、もうメンテナンスされておらず、最新のコードはうまく処理できない。
これが使えれば言うことなしなのだが。

AST

次にAST(abstract syntax tree)構文解析でコードをパースして、そこからさらにcall graphを作成する方法。
AST解析ツールはたとえばesprimaがjqueryにより精力的にメンテナンスされている。
デモ
http://esprima.org/demo/parse.html

ASTからcall graphを作成するにはesgraphがあるが、メンテナンスされていないようだ。
またesgraphとviz.js(graphvizのjs版)を利用し、Web上でjavascriptコードからcall graphを作成できるesgraph-graphviz-onlineがある。
メンテナンスされていないようだ。作者は日本人らしい。

結論

js->ASTまではうまくいくが、AST->dot(graphvizファイル)へうまく変換するソフトが見つかっていない。
とりあえず見つかるまでは、勉強もかねて手書きでオンラインのgraphvizを使って書いていく。
https://dreampuf.github.io/GraphvizOnline/
http://viz-js.com/

参考

https://www.glamenv-septzen.net/view/1394

シェアする

  • このエントリーをはてなブックマークに追加

フォローする