Custom build for angular library projects to produce FESM, ES5, ES6, Typings, inlined templates, resources URL
--libDir must contain two files tsconfig.es5.json
and tsconfig.lib.json
With the tsconfig.es5.json
must have "target": "es5"
.
And the tsconfig.lib.json
must have "target": "es2015"
These must have angular compiler options flatModuleId
and flatModuleOutFile
as shown below.
"angularCompilerOptions": {
"annotateForClosureCompiler": true,
"strictMetadataEmit": true,
"skipTemplateCodegen": true,
"flatModuleOutFile": "example-lib.js",
"flatModuleId": "example-lib",
"genDir": "../../out-tsc/lib-gen-dir/"
}
--rootDir - This is your project's root --libDir - This is where the library code is present -
ngx-library-builder --rootDir ./example --libDir ./example/src/lib
npm install ngx-library-builder --save-dev
Your build-lib.js that you can run.
var ngxLibraryBuilder = require('ngx-library-builder/lib/builder');
var path = require('path');
var process = require('process');
ngxLibraryBuilder.build({rootFolder: path.resolve('.'), srcFolder : path.resolve('src', 'app')}).then(() => {
console.log('Build Completed Successfully ');
process.exit(0);
}).catch((error) => {
console.log('Build Failed ');
console.log(error);
process.exit(1);
});