Skip to content

Build Process

Vladimir Mandic edited this page Feb 21, 2021 · 24 revisions

Build Process

If you want to modify the library and perform a full rebuild:

clone repository, install dependencies, check for errors and run full rebuild from which creates bundles from /src into /dist:

git clone https://github.com/vladmandic/human
cd human
npm install # installs all project dependencies
npm run lint
npm run build

This will rebuild library itself (all variations) as well as demo

Build process is written as JavaScript server/build.js which can be modified to change any build parameters
Build creates a custom tfjs bundle to optimize size and avoid unnecessary polyfills
Production version of the library is fully minified while dev version runs without code minification for easier debugging

Build is started by running npm run build

> @vladmandic/human@0.9.9 build /home/vlado/dev/human
> npm install && rimraf dist/* && node server/build.js && node server/changelog.js

audited 330 packages in 2.272s
found 0 vulnerabilities

2020-11-21 12:06:29 INFO:  @vladmandic/human version 0.9.9
2020-11-21 12:06:29 INFO:  User: vlado Platform: linux Arch: x64 Node: v15.0.1
2020-11-21 12:06:29 INFO:  Build: file startup all target: es2018
2020-11-21 12:06:29 STATE:  Build for: node type: tfjs: { imports: 1, importBytes: 39, outputBytes: 1044, outputFiles: 'dist/tfjs.esm.js' }
2020-11-21 12:06:29 STATE:  Build for: node type: node: { imports: 35, importBytes: 403608, outputBytes: 249844, outputFiles: 'dist/human.node.js' }
2020-11-21 12:06:29 STATE:  Build for: nodeGPU type: tfjs: { imports: 1, importBytes: 43, outputBytes: 1048, outputFiles: 'dist/tfjs.esm.js' }
2020-11-21 12:06:29 STATE:  Build for: nodeGPU type: node: { imports: 35, importBytes: 403612, outputBytes: 249852, outputFiles: 'dist/human.node-gpu.js' }
2020-11-21 12:06:30 STATE:  Build for: browserNoBundle type: tfjs: { imports: 1, importBytes: 1798, outputBytes: 260, outputFiles: 'dist/tfjs.esm.js' }
2020-11-21 12:06:30 STATE:  Build for: browserNoBundle type: esm: { imports: 35, importBytes: 402824, outputBytes: 248844, outputFiles: 'dist/human.esm.nobundle.js' }
2020-11-21 12:06:30 STATE:  Build for: browserBundle type: tfjs: { modules: 1061, moduleBytes: 3772720, imports: 7, importBytes: 1798, outputBytes: 1531180, outputFiles: 'dist/tfjs.esm.js' }
2020-11-21 12:06:30 STATE:  Build for: browserBundle type: iife: { imports: 35, importBytes: 1933744, outputBytes: 1783188, outputFiles: 'dist/human.js' }
2020-11-21 12:06:31 STATE:  Build for: browserBundle type: esm: { imports: 35, importBytes: 1933744, outputBytes: 1783877, outputFiles: 'dist/human.esm.js' }
2020-11-21 12:06:32 STATE:  Build for: browserBundle type: demo: { imports: 5, importBytes: 1844123, outputBytes: 1830367, outputFiles: 'dist/demo-browser-index.js' }
2020-11-21 12:06:32 STATE:  Change log updated: /home/vlado/dev/human/wiki/Change-Log.md

Project is written in TypeScript 4.3 and conforming to JavaScript ECMAScript version 2020
Build target is JavaScript EMCAScript version 2018


Only project depdendency is @tensorflow/tfjs
Development dependencies are eslint used for code linting and esbuild used for IIFE and ESM script bundling

Clone this wiki locally