diff --git a/Build-Process.md b/Build-Process.md index 8a6ebd3..023fcbd 100644 --- a/Build-Process.md +++ b/Build-Process.md @@ -18,32 +18,63 @@ Build process is written as JavaScript `server/build.js` which can be modified t 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` +Production build runs following operations: + +1. Compile TypeScript +2. Create dist minified bundles +3. Run Linter +4. Create TS typings +5. Create TypeDoc API specification + +Dev build runs following operations: + +1. Compile TypeScript +2. Create dist non-minified bundles + +
+ +## Build + +Production build is started by running `npm run build` ```log -> @vladmandic/human@0.9.9 build /home/vlado/dev/human -> npm install && rimraf dist/* && node server/build.js && node server/changelog.js +> @vladmandic/human@2.0.0 build /home/vlado/dev/human +> node server/build.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/CHANGELOG.md +```js +2021-06-03 09:31:42 INFO: @vladmandic/human version 2.0.0 +2021-06-03 09:31:42 INFO: User: vlado Platform: linux Arch: x64 Node: v16.0.0 +2021-06-03 09:31:42 STATE: Application log: /home/vlado/dev/human/server/build.log +2021-06-03 09:31:42 INFO: Toolchain: tfjs: 3.6.0 esbuild 0.12.5; typescript 4.2.4; typedoc: 0.20.36 eslint: 7.27.0 +2021-06-03 09:31:42 INFO: Build: file startup all type: production config: { minifyWhitespace: true, minifyIdentifiers: true, minifySyntax: true } +2021-06-03 09:31:42 STATE: Build for: node type: tfjs: { imports: 1, importBytes: 102, outputBytes: 1292, outputFiles: 'dist/tfjs.esm.js' } +2021-06-03 09:31:42 STATE: Build for: node type: node: { imports: 40, importBytes: 420707, outputBytes: 371671, outputFiles: 'dist/human.node.js' } +2021-06-03 09:31:42 STATE: Build for: nodeGPU type: tfjs: { imports: 1, importBytes: 110, outputBytes: 1300, outputFiles: 'dist/tfjs.esm.js' } +2021-06-03 09:31:42 STATE: Build for: nodeGPU type: node: { imports: 40, importBytes: 420715, outputBytes: 371675, outputFiles: 'dist/human.node-gpu.js' } +2021-06-03 09:31:42 STATE: Build for: nodeWASM type: tfjs: { imports: 1, importBytes: 149, outputBytes: 1367, outputFiles: 'dist/tfjs.esm.js' } +2021-06-03 09:31:42 STATE: Build for: nodeWASM type: node: { imports: 40, importBytes: 420782, outputBytes: 371747, outputFiles: 'dist/human.node-wasm.js' } +2021-06-03 09:31:42 STATE: Build for: browserNoBundle type: tfjs: { imports: 1, importBytes: 2478, outputBytes: 1394, outputFiles: 'dist/tfjs.esm.js' } +2021-06-03 09:31:42 STATE: Build for: browserNoBundle type: esm: { imports: 40, importBytes: 420809, outputBytes: 244956, outputFiles: 'dist/human.esm-nobundle.js' } +2021-06-03 09:31:43 STATE: Build for: browserBundle type: tfjs: { modules: 1274, moduleBytes: 4114813, imports: 7, importBytes: 2478, outputBytes: 1111418, outputFiles: 'dist/tfjs.esm.js' } +2021-06-03 09:31:43 STATE: Build for: browserBundle type: iife: { imports: 40, importBytes: 1530833, outputBytes: 1352725, outputFiles: 'dist/human.js' } +2021-06-03 09:31:44 STATE: Build for: browserBundle type: esm: { imports: 40, importBytes: 1530833, outputBytes: 1352717, outputFiles: 'dist/human.esm.js' } +2021-06-03 09:31:44 INFO: Running Linter: [ 'server/', 'demo/', 'src/', 'test/', [length]: 4 ] +2021-06-03 09:32:09 INFO: Linter complete: files: 67 errors: 0 warnings: 0 +2021-06-03 09:32:09 INFO: Generate types: [ 'src/human.ts', [length]: 1 ] +2021-06-03 09:32:14 INFO: Update Change log: [ '/home/vlado/dev/human/CHANGELOG.md', [length]: 1 ] +2021-06-03 09:32:14 INFO: Generate TypeDocs: [ 'src/human.ts', [length]: 1 ] +2021-06-03 09:32:32 INFO: Documentation generated at /home/vlado/dev/human/typedoc 1 ```
+## Dependencies + Only project depdendency is [@tensorflow/tfjs](https://github.com/tensorflow/tfjs) -Development dependencies are [eslint](https://github.com/eslint) used for code linting and [esbuild](https://github.com/evanw/esbuild) used for IIFE and ESM script bundling +Development dependencies are: + +- [esbuild](https://github.com/evanw/esbuild) used to compile TS sources and generate dist bundles +- [eslint](https://github.com/eslint) used for code linting +- [typescript](https://www.typescriptlang.org/) used to generate typings +- [typedoc](https://typedoc.org/) used to generate API specifications