Node.jsでrequireされたかどうかを調べるには
Pythonの有名なイディオム、if __main__ == "__main__":
、
moduleとしてimportされたときはifの中を実行しないためのもの。
CLIとしてもmoduleとしても使えるようにするための常套手段。
Node.jsで同じことをやるにはどうするか。
実行したら、それぞれ次のように出力されるはず。
$ node app.js
started: app.js
$ node cli.js
started: cli.js
module.parent
がフラグ。
直接実行されたときはnull
になる。moduleとしての親がないってことね。