LoginSignup
1
2

More than 5 years have passed since last update.

Edge.jsをnodeのv9.x系で動かすには

Last updated at Posted at 2017-11-10

背景

以前、イクメン系の記事として書いた

を、思い出し、試そうとしたら、動かなかった

node.jsでC#なコードを埋め込めるEdge.jsモジュールがnode v9.1.0に対応していない
というようなエラーメッセージが出力された。

edge.jsとは

という記事がQiitaにも上がっていた。

こちらの記事でどういうものかがわかると思う。

node-gyp入れてnpm rebuildしてもダメ

どうやら、edge.jsのビルドは独特で、通常のリビルドではなく、
windowsでは.batファイルでビルドすることが分かった。
(edge.jsのgithubのページにもよく読むと書いてある。。)

で、このやり方に従って、ビルドするもnullptrが変換できない!みたいなエラーがでる。
しかもこれ、node側のヘッダファイルで怒られるという始末。

Node v9.x系は多分使ってるV8がVS2017向けのものっぽい

Edge.jsの以下のissueを斜め読みすると、VS2017ではビルドが通るように記述があり、

ちょっと前にChromiumがVS2017でビルドするようになっており、Node.jsのv9.xの
V8も新しめのものを使っているはずで、VS2017でビルドされている気がした。

VS2017のコミュニティ版をいれた

VS2017のコミュニティ版をいれた。なんか別件でVS2015相当のC++のツールセット?を
入れられるみたいなことを目にしており、それっぽいオプションがあったので、追加してインストールした。VS2015はそのまま放置。

SnapCrab_NoName_2017-11-10_16-54-2_No-00.png

Edge.jsのtools\build.batの修正

最近使い始めたMS製?のMS版のchakuraエンジン版のnodeと切り替えることもできるらしいnvs環境だったので、その辺の変更

set GYP=%LOCALAPPDATA%\nvs\node\%3\%2\node_modules\node-gyp\bin\node-gyp.js

と今回メインとなるmsvsのバージョンを2015から2017に変更

"%NODEEXE%" "%GYP%" configure build --msvs_version=2017 -%FLAVOR%

を行い、

build release 9.1.0

で、無事edge.jsのモジュールがビルド出来た。

まとめ

WindowsでのC++がだいぶまともにつかえるようになってきたのかも。。

関連記事

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2