昨日のエラーであるが、原因は不明だが解消した。
H:\pj\gyptest>node notepad.js
module.js:335
Module._extensionsextension;
Error: Module did not self-register.
at Error (native)
at Module.load (module.js:335:32)
at Function.Module._load (module.js:290:12)
at Module.require (module.js:345:17)
at require (module.js:364:17)
at Object.<anonymous> (H:\pj\gyptest\notepad.js:1:77)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:428:10)
at Module.load (module.js:335:32)
at Function.Module._load (module.js:290:12)
このエラーはどうもアドオンが実行環境のnodeバージョンと一致しないときに出るエラーのようである。で、どうすればよいかはWeb上のリソースでは見つからなかった。で、試しにコマンドラインで
iojs notepad.js
としてみるとあっさり動作した。その前までは
node notepad.js
と入力していた。io.jsは2つのバイナリiojs.exeとnode.exeを持っている。2つとも同じバージョン、同じサイズのバイナリである。試しに「iojs -v」「node -v」で出力されるバージョンを比較すると両方とも「1.6.4」であった。
アドオンについてはnodeの実行ファイル名もチェック対象となっていて不一致のためエラーになっていると推測する。推測が正しいのかmodule.jsのコードを読んで確認してみることにする。