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

55 lines
1.1 KiB
Markdown

## 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](../BUILD.md) 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.