[Sy] fluent-loggerをNode.js(v0.12.7)で使おうとしたら「Module did not self-register」とエラーになった
2015/07/21
Node.js
でfluent-logger
を使ってfluentdを使ってるんですが、Node.js
をv0.10.33
からv0.12.7
へアップグレードしたらエラーが出て動かなくなりました。
エラー内容はこうです。
$ node app.js
module.js:355
Module._extensions[extension](this, filename);
^
Error: Module did not self-register.
at Error (native)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/vagrant/analytics/node_modules/fluent-logger/node_modules/msgpack/lib/msgpack.js:6:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
調べてみるとどうやら他のモジュールでも同様のことが起きていて、対応としては軒並み「node v0.12.x
に対応してないから、バージョン下げてね」だった。。。
しかたないので、しばらくv0.12.x
系は使わないことにしました。バージョン管理にはn
を使ってるので、以下のようにv0.10.33
へ戻しました。
$ sudo n 0.10.33