各バージョン下に書きます
node-gypを用いてElectron用にネイティブのモジュールをつくろうとしました。
このページhttps://nodejs.org/api/addons.htmlのHelloWorldを試しました
c++からビルド後、ためしにElectron起動後デベロッパーツールのコンソールで
addon=require("./path/to/build/Release/addon")
を叩いたところ、(相対パス指定)
Uncaught Error: The module 'path/to/build/Release/addon.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 51. This version of Node.js requires NODE_MODULE_VERSION 53. Please try re-compiling or re-installing the module (for instance, using `npm rebuild` or`npm install`). at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20) at Object.Module._extensions..node (module.js:598:18) at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.require (module.js:498:17) at require (internal/module.js:20:19) at <anonymous>:1:7
と返ってきました(path/to/は絶対パス)
そしていろいろ調べて試したのですが、解決できませんでした
細かくターミナルを終了させてコマンドを叩いたので、更新が適用されてないと言ったミスもないと思います
nodeはnodebrewでいれてます
- globalのnodeをelectronのnodeのバージョンである7.4.0,さらに7.2.0,7.6.0でnode-gyp rebuild
エラー内容変わらず、この時点でNODE_MODULE_VERSION 51
が何に依存してるかわからなくなりました
versions
- macOS Sierra 10.12.3
- electron v1.6.2
- nodebrew 0.9.6
- node 7.2.0(nodebrew install-binaryで入れました)
- npm 4.4.1
- Python 2.7.10
electron内
公式ページ参照https://electron.atom.io/
Electron: 1.6.2 Node: 7.4.0 Chromium: 56.0.2924.87 V8: 5.6.326.50
さらにDevToolsでprocess.versionsをみてみると、
{ ares:"1.0.1-DEV" atom-shell:"1.6.2" chrome:"56.0.2924.87" electron:"1.6.2" http_parser:"2.7.0" modules:"53" node:"7.4.0" openssl:"1.0.2j" uv:"1.10.1" v8:"5.6.326.50" zlib:"1.2.8" }
でした。modules:"53"
とありますね、
さらに./build/config.gypiのなかに、"node_module_version": 51,
とありました
NODE_MODULE_VERSIONとは何なんでしょうか、どうやったら変えられるんでしょうか、
どうかご助力お願いします.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。