node.jsのC++アドオンを実装してみた
実装
1.必要ライブラリの導入
下記をインストール。グローバルインストールである点に注意。
❯ yarn global add yo
❯ yarn global add generator-napi-module
2.ディレクトリの初期化作業
ライブラリの開発ディレクトリで下記を実行。
❯ yo napi-module
すると、対話式に下記を聞かれるので、回答する。
package name: (nodejs_cpp_addon_sample)
version: (1.0.0)
description:
git repository: git@github.com:up-tri/nodejs_cpp_addon_sample.git
keywords:
author: up-tri<yaki-shake@up-tri.me>
license: (ISC) MIT
About to write to /path/to/dir/package.json:
... (※package.json の内容が表示される)
初期化が完了すると、開発に必要なファイル群が配置される。
❯ tree . -d -L 3 -I "node_modules"
.
├── build
│ └── Release
│ └── obj.target
├── lib
├── src
└── test
VSCodeに「ソース ファイルを開けません “node_api.h” (dependency of “napi.h”)C/C++(1696)」と怒られるが問題ない。
3.ビルド
yarn
でビルドできる。
生成結果は /build
配下にできあがる。なので /build
配下はgitの追跡からは図しておくと吉。
参考
https://napi.inspiredware.com/getting-started/objectwrap.html