onnxruntime/nodejs/BUILD.md
Yulong Wang 5dfc91db51
Node.js binding for ONNX Runtime (#3613)
* initial commit for Node.js binding

* add c++ code

* add inference session impl

* e2e working

* add settings.json

* add test data

* adjust binding declaration

* refine tensor constructor declaration

* update tests

* enable onnx tests

* simply refine readme

* refine cpp impl

* refine tests

* formatting

* add linting

* move bin folder

* fix linux build

* manually update test filter list

* update C++ API headers: fix crash in release build

* make (manually) prebuild work

* add test into prepack script

* specify prebuild runtime type (N-API)

* build.ts: update rebuild and include regex

* fix lazy load on electron.js

* update dev version, git link and binary host

* support session options and run options

* bump dev version

* update README

* add 1 example

* move folder

* adjust path

* update document for examples

* rename example 01

* add example 02

* add session option: log severity level

* add example 04

* resolve comments

* fix typo

* remove double guard in header files

* add copyright banner

* move BUILD outside from README

* consume test filter list from onnxruntime
2020-05-05 11:45:12 -07:00

1.1 KiB

Building Node.js binding

Pre-Requisites

  1. Node.js 12.x

Build Instructions

Currently it takes 4 steps to build Node.js binding:

  1. Build ONNX Runtime with flag --build_shared in repo root. See Build for more info.

  2. In current folder, run npm install. This will pull dev dependencies.

  3. Run npm run build to build binding.

  4. Run npm test run tests.

To consume the local built Node.js binding in a Node.js project:

npm install <onnxruntime-repo-root-folder>/nodejs

Publish

Publishing a NPM package with addon requires 2 steps: publish NPM package itself, and publish prebuild binaries.

Publish NPM package

To publish a release:

npm publish

To publish a @dev release:

npm publish --tag dev

To create a npm package (for local use or debug purpose):

npm pack

NOTE: Need to publish the package from a clean build, otherwise extra files may be packed.

Publish prebuild binaries

Currently, prebuild binaries only support 3 platforms on x64: win32/linux/macos.

Prebuilds are currently uploaded manually.