昨日のエラーであるが、原因は不明だが解消した。
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のコードを読んで確認してみることにする。