lib-tools
Version:
The lib-tools helps you simplify the build, bundle, test and npm packaging workflows for Typescript, JavaScript, Angular library projects and assets module projects.
184 lines (139 loc) • 6.76 kB
Markdown
[](https://github.com/lib-tools/lib-tools/actions)
[](https://dev.azure.com/lib-tools/lib-tools/_build/latest?definitionId=1&branchName=master)
[](https://www.npmjs.com/package/lib-tools)
The `lib-tools` helps you simplify the build, bundle, test and npm packaging workflows for Typescript, JavaScript, Angular library projects and assets module projects (e.g. sass, scss, css or icons). This tool can automatically set up for your projects without the time spent with webpack, rollup, karma, postcss, autoprefixer or clean-css configuration files. You can start from zero-configuration to fully customizable options!
## Getting Started
### Installation
You can install lib-tools cli either globally or locally.
```bash
npm install -D lib-tools
```
or install globally
```bash
npm install -g lib-tools
```
Latest npm package is [](https://www.npmjs.com/package/lib-tools)
### Build/Bundle the Project(s)
To build/bundle the project(s) using `workflow.json` configuration file
```bash
lib build
```
Or, to automatically detect and build the project(s) without `workflow.json` configuration file
```bash
lib build --workflow=auto
```
To learn more about the build command options, see [Build Command Usage](https://github.com/lib-tools/lib-tools/wiki/Build-Command-Usage) wiki, or run
```bash
lib build --help
```
To run the test(s) using `workflow.json` configuration file.
```bash
lib test
```
Or, to automatically detect and run the test(s) without `workflow.json` configuration file.
```bash
lib test --workflow=auto
```
To learn more about the test command options, see [Test Command Usage](https://github.com/lib-tools/lib-tools/wiki/Test-Command-Usage) wiki, or run
```bash
lib test --help
```
The following is an example `workflow.json` configuration for building and testing the Typescript library project.
```json
{
"projects": {
"demo-project": {
"root": "./",
"tasks": {
"build": {
"outputPath": "dist/demo-project",
"script": {
"compilations": [
{
"declaration": true,
"target": "ES2015",
"outDir": "esm2015",
"esBundle": {
"outputFile": "fesm2015/demo-project.js"
}
},
{
"declaration": false,
"target": "es5",
"outDir": "esm5",
"esBundle": true,
"umdBundle": {
"outputFile": "bundles/demo-project.umd.js"
}
}
],
"tsConfig": "tsconfig.build.json",
"entry": "public_api.ts",
"umdId": "demo",
"peerDependenciesAsExternals": true,
"dependenciesAsExternals": true,
"externals": {
"tslib": "tslib"
}
}
},
"test": {
"karmaConfig": "karma.conf.js",
"testIndexFile": "test/test.ts",
"tsConfig": "tsconfig.test.json",
"envOverrides": {
"ci": {
"reporters": [
"junit",
"coverage"
],
"codeCoverageExclude": [
"**/test.ts",
"**/index.ts",
"**/public_api.ts"
],
"browsers": [
"ChromeHeadlessCI"
],
"singleRun": true
}
}
}
}
}
}
}
```
To learn more about workflow configuration, see [Build Workflow Configuration](https://github.com/lib-tools/lib-tools/wiki/Build-Workflow-Configuration) and [Test Workflow Configuration](https://github.com/lib-tools/lib-tools/wiki/Test-Workflow-Configuration).
* Build
* [Build Command Usage](https://github.com/lib-tools/lib-tools/wiki/Build-Command-Usage)
* [Build Workflow Configuration](https://github.com/lib-tools/lib-tools/wiki/Build-Workflow-Configuration)
* Test
* [Test Command Usage](https://github.com/lib-tools/lib-tools/wiki/Test-Command-Usage)
* [Test Workflow Configuration](https://github.com/lib-tools/lib-tools/wiki/Test-Workflow-Configuration)
* [Typescript Library Project Demo](https://github.com/lib-tools/lib-tools/tree/master/samples/typescript-library-project-demo)
* [Angular Library Project Demo](https://github.com/lib-tools/lib-tools/tree/master/samples/angular-library-project-demo)
* [Style Module Demo](https://github.com/lib-tools/lib-tools/tree/master/samples/style-module-demo)
* Typescript/JavaScript Projects
* [translit-js](https://github.com/DagonMetric/translit-js) - General purpose transliterate service for JavaScript applications
* [myanmar-text-extractor-js](https://github.com/myanmartools/myanmar-text-extractor-js) - Burmese language (Myanmar text) extractor JavaScript library for word segmentation, text extraction or syllable break
* [zawgyi-unicode-translit-rules](https://github.com/myanmartools/zawgyi-unicode-translit-rules) - Zawgyi Unicode transliterate / convert regular expression rules in JavaScript
* Angular Projects
* [ng-entity-change-checker][https://github.com/DagonMetric/ng-entity-change-checker] - Object dirty checker and modified properties detector for Angular
* [ng-config](https://github.com/DagonMetric/ng-config) - Configuration and options service for Angular
* [ng-log](https://github.com/DagonMetric/ng-log) - Vendor-agnostic logging, analytics and telemetry service abstractions and some implementations for Angular
* [ng-cache](https://github.com/DagonMetric/ng-cache) - Caching service for Angular
* [ng-zawgyi-detector](https://github.com/myanmartools/ng-zawgyi-detector) - Zawgyi-One and standard Myanmar Unicode detector library for Angular
We’re using the following discussion channels as a place to connect with other members of our community.
* [GitHub Discussions Channel](https://github.com/lib-tools/lib-tools/discussions)
Check out our [Contributing](https://github.com/lib-tools/lib-tools/blob/master/CONTRIBUTING.md) page.
This repository is licensed with the [MIT](https://github.com/lib-tools/lib-tools/blob/master/LICENSE) license.