ECMAScript系の汎用モジュールは、
「require関数で呼ばれる」ということを意識した作りのものが多くなっています。
そこで、本来は、JScriptエンジンには、require関数は存在しませんが、
特別な対処として、hmJSにはnodejsの簡易版のようなrequire関数が実装されています。
まず、現在実行中のマクロと同じディレクトリに「abc.js」があれば、そのファイルを対象とします。
もし現在のマクロと同じディレクトリに存在しなければ、「カレントディレクトリ」に「abc.js」があれば、それを対象とします。
カレントディレクトリにも存在しないとすれば、どこかに「abc.js」というファイル名だけで読み込める(パスなどが通った)ファイルが存在すれば、それを対象とします。
require( hm.Macro.Var("macrodir") + "/" + "a.js")
などとすると、「秀丸のマクロ用ディレクトリ(設定してない場合、秀丸本体のディレクトリ)」、
require( hm.Macro.Var("currentmacrodirectory") + "/" + "a.js")
などとすると、「秀丸実行中のマクロのディレクトリ、
というような「フルパス相当の文字列」で呼び出すことも出来ます。
node.jsのrequire関数が、jsonファイルを読み込むことが出来る(jsonの内容に従ったJavaScriptのオブジェクトになる)のと同様に、
hmJSのrequire関数も、jsonファイルを読み込むことが可能です。
var data = require("aaa.json"); console.log(data);