Skip to content
/ hinapi Public

Node.js native addons without node-gyp!

Notifications You must be signed in to change notification settings

kkocdko/hinapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hinapi

A template repo to build Node.js native addons without node-gyp! Switch to any of your favorite general-prupose build tools. And there's a blog post

Tested on these platform, see actions:

  • Linux: gcc 12.2.1 + gnu make 4.3, gcc 12.2.1 + ninja 1.11.1.

  • Windows: msvc cl 19.34.31938 x64 + nmake, msvc cl 19.35.32216.1 x64 + ninja 1.11.1, gcc 12.2.0 + mingw-w64 10.0.0 + ninja 1.11.1.

  • macOS: clang / llvm 14.0.0.

Usage

Optional: CMake and Ninja.

cmake -B build -G Ninja && cmake --build build
node src/main.js

On Linux, without any build tools, put node-addon-api and node-api-headers into ./third_party, then:

mkdir -p build
g++ src/hinapi.cc -o build/hinapi.node \
  -I third_party/node-addon-api \
  -I third_party/node-api-headers/include \
  -shared -fPIC
node src/main.js

Thanks

https://blog.logrocket.com/solving-common-issues-node-gyp/

https://github.com/evanw/esbuild/blob/v0.17.12/lib/npm/node-platform.ts

https://stackoverflow.com/a/74779719/11338291

https://stackoverflow.com/a/17602173/11338291

https://gist.github.com/mmozeiko/7f3162ec2988e81e56d5c4e22cde9977

https://github.com/skeeto/w64devkit/

https://github.com/nodejs/node-addon-api/blob/main/doc/setup.md