* working on re-organizing js code for ortweb * remove dup files * move folder * fix common references * fix common es5 * add webpack to common * split interfact/impl * use cjs for node * add npmignore for common * update sourcemap config for common * update node * adjust folder/path in CI and build * update folder * nit: readme * add bundle for dev * correct nodejs paths * enable ORT_API_MANUAL_INIT * set name for umd library * correct name for commonjs export * add priority into registerBackend() * fix npm ci pwd * update eslintrc * revise code * revert package-lock lockfileVersion 2->1 * update prebuild * resolve comments * update document * revise eslint config * update eslint for typescript rules * revert changes by mistake in backend.ts * add env * resolve comments |
||
|---|---|---|
| .. | ||
| .vscode | ||
| common | ||
| node | ||
| .clang-format | ||
| .eslintrc.js | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
ONNX Runtime JavaScript API
This directory contains multiple NPM projects:
Development
This folder contains a .vscode folder for Visual Studio Code workspace configs. Using VSCode to open this folder
will allow code-formatting and linting features on typescript and C/C++ source code inside this folder. Following files
are used for code-formatting and linting features for developers:
- .vscode/**
- package.json
- packages-lock.json
- .eslintrc.js
- .clang-format
Using VSCode:
- in
<ORT_ROOT>/js, run:npm ci
- use VSCode to open folder
<ORT_ROOT>/js - install VSCode extension if not installed yet:
- Clang-Format
- ESLint
To populate typescript type declarations, in each projects, run npm ci.
onnxruntime-common
language: typescript
dependency:
folder: <ORT_ROOT>/js/common
This project is designed to include all "common" code, which are pure javascript that can run in both Node.js and browsers.
Requirements
Node.js v12+ (recommended v14+)
Build
Use following command in folder <ORT_ROOT>/js/common to install NPM packages, build typescript files and generate bundles:
npm ci
Distribution
It should be able to consumed by both from projects that uses NPM packages (through a Node.js folder structure of node_modules folder that generated by npm install onnxruntime-common) and from a CDN service that serves a .min.js bundle file.
Features
Following features are included in onnxruntime-common:
InferenceSessioninterfacesTensor/OnnxValueinterfaces, implementation and a set of utility functionsBackendinterfaces and a set of functions for backend registration
onnxruntime-node
language: typescript/C++
dependency: onnxruntime-common, ONNXRuntime.dll
folder: <ORT_ROOT>/js/node
This project is designed to be used as a NPM package to enable Node.js users to consume ONNX Runtime via Node.js binding, in Node.js or any Node.js compatible environment.
Requirements
Node.js v12+ (recommended v14+)
Build
Build ONNX Runtime and Node.js binding
Follow instructions for building ONNX Runtime Node.js binding
Build Node.js binding only
Use following command in folder <ORT_ROOT>/js/node to install NPM packages and build typescript files:
npm ci
This will download the latest pre-built ONNX Runtime binaries for the current platform.
Distribution
It should be able to consumed by from projects that uses NPM packages (through a Node.js folder structure of node_modules folder that generated by npm install onnxruntime-node).
onnxruntime-web
language: typescript
dependency: onnxruntime-common, onnxruntime_wasm.wasm
folder: <ORT_ROOT>/js/web
NOTE: This is the successor of ONNX.js.
It should be able to consumed by both from projects that uses NPM packages (through a Node.js folder structure of node_modules folder that generated by npm install onnxruntime-web) and from a CDN service that serves a .min.js file and one or multiple .wasm file(s).
onnxruntime-react-native
TBD