{"id":13493712,"url":"https://github.com/tinesoft/generator-ngx-library","last_synced_at":"2026-03-02T05:04:38.095Z","repository":{"id":34611029,"uuid":"38559565","full_name":"tinesoft/generator-ngx-library","owner":"tinesoft","description":"Yeoman generator to bootstrap :rocket: your Angular library creation and publication. ","archived":false,"fork":false,"pushed_at":"2022-12-06T19:49:20.000Z","size":3980,"stargazers_count":92,"open_issues_count":23,"forks_count":16,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-04-14T00:34:51.856Z","etag":null,"topics":["angular","generator","library","yeoman-generator"],"latest_commit_sha":null,"homepage":"https://github.com/tinesoft/generator-ngx-library#features","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tinesoft.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"tinesoft","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"custom":null}},"created_at":"2015-07-05T06:40:48.000Z","updated_at":"2023-11-27T01:02:45.000Z","dependencies_parsed_at":"2023-01-15T08:04:18.321Z","dependency_job_id":null,"html_url":"https://github.com/tinesoft/generator-ngx-library","commit_stats":null,"previous_names":["tinesoft/generator-ng-plugin"],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinesoft%2Fgenerator-ngx-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinesoft%2Fgenerator-ngx-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinesoft%2Fgenerator-ngx-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinesoft%2Fgenerator-ngx-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tinesoft","download_url":"https://codeload.github.com/tinesoft/generator-ngx-library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230363997,"owners_count":18214717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","generator","library","yeoman-generator"],"created_at":"2024-07-31T19:01:18.013Z","updated_at":"2025-10-27T04:12:42.049Z","avatar_url":"https://github.com/tinesoft.png","language":"JavaScript","funding_links":["https://github.com/sponsors/tinesoft"],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg height=\"300px\" width=\"300px\" style=\"text-align: center;\" src=\"https://cdn.rawgit.com/tinesoft/generator-ngx-library/master/assets/logo.png\"\u003e\n \u003c/p\u003e\n \n# generator-ngx-library - [Yeoman](http://yeoman.io/) generator to bootstrap your [Angular](https://angular.io) library creation and publication\n\n\n[![npm version](https://badge.fury.io/js/generator-ngx-library.svg)](https://badge.fury.io/js/generator-ngx-library)\n[![Build Status](https://travis-ci.org/tinesoft/generator-ngx-library.svg?branch=master)](https://travis-ci.org/tinesoft/generator-ngx-library)\n[![Build status](https://ci.appveyor.com/api/projects/status/f6ri735a86045tuw/branch/master?svg=true)](https://ci.appveyor.com/project/tinesoft/generator-ngx-library/branch/master)\n[![Coverage Status](https://coveralls.io/repos/github/tinesoft/generator-ngx-library/badge.svg?branch=master)](https://coveralls.io/github/tinesoft/generator-ngx-library?branch=master)\n[![dependencies Status](https://david-dm.org/tinesoft/generator-ngx-library/status.svg)](https://david-dm.org/tinesoft/generator-ngx-library)\n[![devDependency Status](https://david-dm.org/tinesoft/generator-ngx-library/dev-status.svg?branch=master)](https://david-dm.org/tinesoft/generator-ngx-library#info=devDependencies)\n[![Greenkeeper Badge](https://badges.greenkeeper.io/tinesoft/generator-ngx-library.svg)](https://greenkeeper.io/)\n[![Join the chat at https://gitter.im/generator-ngx-library/Lobby](https://badges.gitter.im/generator-ngx-library/Lobby.svg)](https://gitter.im/generator-ngx-library/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n===========================================================================================================================================\n\n# Demo\n\nHere are live examples of some Angular libraries developed with the generator:\n\n* [ng-scrollreveal](http://github.com/tinesoft/ng-scrollreveal) (by yours truly :innocent:)\n* [ngx-cookieconsent](https://github.com/tinesoft/ngx-cookieconsent) (:innocent:)\n* [ngx-wow](https://github.com/tinesoft/ngx-wow) (:innocent:)\n* [ngx-disqus](https://github.com/murhafsousli/ngx-disqus/)\n* [ngx-slideshow](https://github.com/WireFlare/ngx-slideshow)\n* [ngx-auth-firebaseui](https://github.com/AnthonyNahas/ngx-auth-firebaseui)\n* [ngx-material-pages](https://github.com/AnthonyNahas/ngx-material-pages)\n* [ng2-avatar](https://github.com/snics/ng2-avatar)\n* [dejajs-components](https://github.com/DSI-HUG/dejajs-components)\n\nThese are some that [i know of](https://github.com/search?q=generator-ngx-library+filename%3A.yo-rc.json+path%3A%2F\u0026type=Code\u0026utf8=%E2%9C%93). Want your project listed here ? Drop me a line.\n\n# Features\n\nThese are the main features of the generator:\n\n* **Ahead Of Time**(AOT) Compilation, **Flattened ES Modules**(FESM), **[Minified] UMD Bundles**, **Closure Compiler** support (follows [Angular Package Format](https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/preview))\n* **Universal (Server Side Rendering)** support\n* **Code Linting** based on [codelyzer](https://github.com/mgechev/codelyzer) rules \n* **Styles** and **Templates Inlining** in components\n* **SASS/SCSS** to **CSS** compilation\n* **Integrated demo app** built with [angular-cli](https://cli.angular.io) and [ng-bootstrap](https://ng-bootstrap.github.io) \n* **Project Documentation** built with [compodoc](https://compodoc.github.io/website/) and published along with demo app :books:\n* **Continuous Integration** with [Travis CI](https://travis-ci.org)\n* **Testing Environment** with [Karma](https://karma-runner.github.io/) and [Webpack](https://webpack.github.io/) or [Jest](http://facebook.github.io/jest/)\n* **Code Coverage** with [Coveralls.io](https://coveralls.io/)\n* **Real-time Monitoring** and **Automatic Updates** of npm dependencies with [Greenkeeper](https://greenkeeper.io) :palm_tree:\n* **Enforcing of Angular Git Commit Message Guideline** with [Commitplease](https://github.com/jzaefferer/commitplease) :speech_balloon:\n* **Publication** to [npm registry](https://npmjs.org)\n* **Releasing** to [Github](https://help.github.com/articles/about-releases/) :octocat:\n* Support for **scoped packages** (eg: @mycompany/mylibrary)\n* Support for Angular from 2.x.x all the way up to **6.x.x**!\n* and so much more out-of-the-box :package:!\n\n# TL; DR :)\n\nIf you find next sections way too long, here is a quick summary for you:\n\n* **Setup**:\n  * Dependencies: `npm install -g yo gulp-cli @angular/cli`\n  * Installation: `npm install -g generator-ngx-library`\n  * **Usage**: `yo ngx-library [project-folder]`\n* **Library main tasks**:\n  * Testing Library: `gulp test`\n  * Building Library: `gulp build`\n  * Watching source files and auto-rebuilding Library: `gulp build:watch`\n  * Watching source files and auto-rebuilding Library (without running tests): `gulp build:watch-fast`\n  * **Releasing Library**: `gulp release --version=[major|minor|patch]`\n* **Demo app main tasks**:\n  * **Serving demo app**: `gulp serve:demo`\n  * Serving demo app with Hot Module Replacement (HMR): `gulp serve:demo-hmr`\n  * Serving demo app with Server (Universal): `gulp serve:demo-ssr`\n  * Building demo app for Prod: `gulp build:demo`\n  * Building demo app for Prod with Server (Universal): `gulp build:demo-ssr`\n\n# Table of contents\n\n\u003c!-- toc --\u003e\n\n- [Installation \u0026 Usage](#installation--usage)\n  * [Requirements](#requirements)\n  * [Usage](#usage)\n  * [Options](#options)\n- [Overall Directory Structure](#overall-directory-structure)\n- [Overall Distributed Package Structure](#overall-distributed-package-structure)\n    + [For Angular \u003e=v4.x.x](#for-angular-v4xx)\n    + [For Angular v2.x.x](#for-angular-v2xx)\n- [Development](#development)\n    + [Recipes](#recipes)\n    + [Updating](#updating)\n- [Enforcing angular-style commit messages](#enforcing-angular-style--commit-messages)\n- [Pre-Releasing :checkered_flag:](#pre-releasing-checkered_flag)\n- [Releasing](#releasing)\n- [Troubleshooting](#troubleshooting)\n- [Support](#support)\n- [License](#license)\n\n\u003c!-- tocstop --\u003e\n\n# Installation \u0026 Usage\n\n## Requirements\n\nYou should already have the following dependencies installed: **Node.js(npm)**, **Yeoman** , **Gulp** and **Angular CLI**. if not:\n\n* Install [Node.js](https://nodejs.org/). This will also install npm, which is the node package manager we are using in the next commands.\n* Install [Yeoman](https://yeoman.io): ```npm install -g yo```\n* Install [Gulp](https://gulpjs.com): ```npm install -g gulp-cli```\n* Install [Angular CLI](http://github.com/angular/angular-cli): ```npm install -g @angular/cli```\n\nOtherwise, install directly the generator via:\n\n```\n$ npm install -g generator-ngx-library\n```\n\n## Usage\n\nOnce installed, simply run the following command:\n\n```\n$ yo ngx-library [project-folder]\n```\n\u003e _Notice that you can optionally provide the folder where to generate files into, otherwise current one is used._\n\nAnd answer the questions you are prompted to.\n\n\n![generator-ngx-library in action!](assets/ngx-library.png)\n\n## Options\n\nThe following options can be passed to customize the generator.\nThe syntax is:\n\n```\n$ yo ngx-library [project-folder] --\u003coption-name\u003e\n```\n\nName         | Purpose\n-------------|----------\nskip-install | skips the automatic installation of project dependencies at the end of the generator\nskip-checks  | skips the checks of required tools (yarn, angular-cli) prior to generation\nskip-cache   | forces the regeneration on an exising project (ignore previous answers)\nskip-demo    | skips the generation of the demo application\nskip-styles  | skips the generation of style inlining related code (in case you don't use styles)\nskip-sample  | skips the generation of the sample library\nskip-travis  | skips the integration with Travis CI\nskip-coveralls  | skips the integration with Coveralls (code coverage)\nskip-gh-releasing  | skips the releasing of the library on Github\ndel-excluded-files  | deletes excluded files that have been found in the file system (from previous generation for example)\nnpm          | forces usage of `npm` to install dependencies\n\n# Overall Directory Structure\n\nAt a high level, the generated structure looks exactly like this:\n\n```\nmy-ngx-library/\n  |- .git/\n  |- src/\n  |  |\t|- component/\n  |  |\t|  |- lib.component.html\n  |  |\t|  |- lib.component.scss\n  |  |\t|  |- lib.component.spec.ts\n  |  |\t|  |- lib.component.ts\n  |  |\t|- component/\n  |  |\t|  |- lib.service.spec.ts\n  |  |\t|  |- lib.service.ts\n  |  |\t|- index.ts\n  |  |\t|- lib.module.ts\n  |  |\t|- tsconfig.lib.es5.ts      # if targeting Angular v4.x.x\n  |  |\t|- tsconfig.lib.json\n  |  |\t|- tsconfig.spec.json\n  |- config/\n  |  |\t|- helpers.js\n  |  |\t|- karma-test-shim.js\n  |  |\t|- karma.conf.js\n  |  |\t|- webpack.test.js\n  |- demo/\n  |  |- # \u003cangular-cli files\u003e + \u003cfollowing additional files\u003e:\n  |  |- src/\n  |  |\t|- app/\n  |  |\t|  |- getting-started/\n  |  |\t|  |  |- getting-started-routing.module.ts\n  |  |\t|  |  |- getting-started.component.html\n  |  |\t|  |  |- getting-started.component.scss\n  |  |\t|  |  |- getting-started.component.ts\n  |  |\t|  |  |- getting-started.component.spec.ts\n  |  |\t|  |  |- getting-started.module.ts\n  |  |\t|  |- home/\n  |  |\t|  |  |- home-routing.module.ts\n  |  |\t|  |  |- home.component.html\n  |  |\t|  |  |- home.component.scss\n  |  |\t|  |  |- home.component.ts\n  |  |\t|  |  |- home.component.spec.ts\n  |  |\t|  |  |- home.module.ts\n  |  |\t|  |- shared/\n  |  |\t|  |- app-rooting.module.ts\n  |  |\t|- assets/\n  |  |\t|  |- logo.svg\n  |  |\t|- testing/\n  |  |\t|  |- index.ts\n  |  |\t|  |- router-stubs.ts\n  |  |\t|- tsconfig.server.json           # for universal (server side rendering)\n  |  |- prerender.ts                      # for universal (server side rendering)\n  |  |- server.ts                         # for universal (server side rendering)\n  |  |- webpack.server.config.js          # for universal (server side rendering)\n  |- .editorconfig\n  |- .gitignore\n  |- .travis.yml\n  |- CHANGELOG.md\n  |- gulpfile.js\n  |- karma.conf.js\n  |- LICENSE\n  |- package.json\n  |- tsconfig.json\n  |- tslint.json\n  |- webpack.config.js\n```\n\nHere are the main files and folders:\n\nFile / Folder       | Purpose\n:-------------------|:---------------------------------------------------------------------------------------------------------\n`gulpfile.js`       | The gulp configuration file to manage the whole project build lifecycle (from testing to releasing)\n`tslint.json`       | This file contains rules to lint your library based on [codelyzer](https://github.com/mgechev/codelyzer)\n`tsconfig.json`     | The typescript configuration file used for editors (VSCode, ...)\n`src/tsconfig.lib.es5.json` | The typescript configuration file used to compile your library in an AoT compatible way, as ESM/ES5 module (only available when targeting Angular v4.x.x)\n`src/tsconfig.lib.json` | The typescript configuration file used to compile your library in an AoT compatible way, either as ESM/ES2015 module (when targeting Angular v4.x.x) or as ESM/ES5 module (when targeting Angular v2.x.x)\n`src/tsconfig.spec.json` | The typescript configuration file used for tests\n`src/`              | This folder will contain all the files of your library\n`config/`           | This folder contains the configuration files for tools used to test your lib (`Webpack` \u0026 `Karma` or `Jest`)\n`demo/`             | This folder contains an integrated demo application, to showcase your library. The demo app is built with [angular-cli](https://github.com/angular/angular-cli), so everything you know about the CLI is applicable inside this folder.\n`dist/` (generated) | This generated folder contains everything that will be published as part of your package to [npm registry](https://npmjs.org).  It contains only necessary files and is built via `gulp build`command\n\n\u003e **Note** :\n\u003e The demo app has a dependency on your local package, that is post-installed via `npm link \u003cYOUR_PACKAGE_NAME\u003e` and point to the generated `dist/` folder (from project root). This way, you can be sure you are using the library as final users will, without having to publish it first.\n\u003e\n\u003e Besides, any changes to the files in the `dist/` folder will immediately affect the global `\u003cYOUR_PACKAGE_NAME\u003e` package, allowing you to quickly test any changes you make to your library.\n\u003e\n\u003e `npm link` is very similar to npm install -g except that instead of downloading the package from the repo, the just built `dist/` folder becomes the global package. \n\n# Overall Distributed Package Structure\n\nDepending on the minimal version of Angular your library targets (2.x.x or 4.x.x), the distributed package files are different, but both are AOT compatible:\n\n### For Angular \u003e=v4.x.x\n\nThe published package follows the official [Angular Package Format v4.0](https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/preview)\n\n```\ndist/\n\t|- bundles/                           # Directory that contains all bundles (UMD/ES5)\n\t|  |- my-ngx-library.umd.js           # UMD bundle\n\t|  |- my-ngx-library.umd.js.map       # UMD bundle sourcemap\n\t|  |- my-ngx-library.umd.min.js       # Minified UMD bundle\n\t|  |- my-ngx-library.umd.min.js.map   # Minified UMD bundle sourcemap\n\t|- module/                            # \n\t|  |- component/                      #\n\t|  |  |- lib.component.d.ts           # Type definitions\n\t|  |- service/                        #\n\t|  |  |- lib.service.d.ts             # Type definitions\n\t|- CHANGELOG.md                       #\n\t|- my-ngx-library.d.ts                # Type definitions\n\t|- my-ngx-library.metadata.json       # Metadata used by AOT compiler\n  |- [esm5]/                            # Optional Directory containing ESM5 files (for ng \u003e=v5 only)\n\t|  |- my-ngx-library.es5.js           # ESM+ES5 flat module (FESM5)\n\t|  |- my-ngx-library.es5.js.map       # ESM+ES5 flat module (FESM5) sourcemap\n  |- [esm2015]/                         # Optional Directory containing ESM2015 files (for ng \u003e=v5 only)\n\t|  |- my-ngx-library.js              # ESM+ES2015 flat module (FESM15)\n\t|  |- my-ngx-library.js.map          # ESM+ES2015 flat module (FESM15) sourcemap\n\t|- LICENSE                            #\n\t|- lib.module.d.ts                    # Type definitions\n\t|- package.json                       # Package.json, with just the right dependencies \u0026 peerDependencies\n\t|- README.md                          #\n```\n\n### For Angular v2.x.x\n\nThe published package also follows the format of Angular core packages (prior to v4.0.0), but contrary to v4, there is no official(or publicly available) documentation about that format.\n\n```\ndist/\n\t|- bundles/                           # Directory that contains all bundles (UMD/ES5)\n\t|  |- my-ngx-library.umd.js           # UMD bundle\n\t|  |- my-ngx-library.umd.js.map       # UMD bundle sourcemap\n\t|  |- my-ngx-library.umd.min.js       # Minified UMD bundle\n\t|  |- my-ngx-library.umd.min.js.map   # Minified UMD bundle sourcemap\n\t|- module/                            # \n\t|  |- component/                      #\n\t|  |  |- lib.component.d.ts           # Type definitions\n\t|  |  |- lib.component.js             # ES5 file\n\t|  |  |- lib.component.js.map         # ES5 sourcemap\n\t|  |  |- lib.component.metadata.json  # Metadata used by AOT compiler\n\t|  |- service/                        #\n\t|  |  |- lib.service.d.ts             # Type definitions\n\t|  |  |- lib.service.js               # ES5 file\n\t|  |  |- lib.service.js.map           # ES5 sourcemap\n\t|  |  |- lib.service.metadata.json    # Metadata used by AOT compiler\n\t|- CHANGELOG.md                       #\n\t|- index.d.ts                         # Type definitions\n\t|- index.js                           # ES5 entrypoint\n\t|- index.js.map                       # ES5 sourcemap\n\t|- index.metadata.json                #\n\t|- LICENSE                            #\n\t|- lib.module.d.ts                    # Type definitions\n\t|- lib.module.metadata.json           # Metadata used by AOT compiler\n\t|- package.json                       # Package.json, with just the right dependencies \u0026 peerDependencies\n\t|- README.md                          #\n```\n\n# Development\n\nIt's now up to you to write your kick-ass Angular library by adding your components, directives, pipes, services... and tests in `src/`.\n\nIt doesn't matter how you organize files inside the folder, but it is important to **keep the** `index.ts` **at the root**, and to **export every file that must be publicly** available in your package.\n\nHere are the most important `gulp` tasks to use during your development workflow:\n\nTask                    | Purpose\n:-----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------\n`gulp build`            | Builds and packages your library under the `dist/` folder.\n`gulp build:watch`      | Watches the source files (*.ts, *.html and *.scss) and re-builds your library upon changes (useful for live refresh of demo app during development).\n`gulp build:watch-fast` | Watches the source files (*.ts, *.html and *.scss) and re-builds your library upon changes (without running tests).\n`gulp test`             | Launches the tests (`*.spec.ts`) you wrote in `src/` and run code coverage on them. The coverage report can be found in `coverage/` folder\n`gulp test:watch`       | Launches tests in watch mode. Every changes in `*.spec.ts` \n`gulp test:watch-no-cc` | Same as `gulp test:watch` but files do not get instrumented for code coverage (useful for debugging)\n`gulp test:demo`\u003csup\u003e1\u003c/sup\u003e       | Launches demo application tests(same as running `ng test` from `demo/`).\n`gulp build:demo`\u003csup\u003e1\u003c/sup\u003e      | Builds demo application for production. \n`gulp build:demo-ssr`\u003csup\u003e1\u003c/sup\u003e  | Builds demo application for universal (server side rendering) testing. \n`gulp serve:demo`\u003csup\u003e1\u003c/sup\u003e      | Serves demo application (same as running `ng serve` from `demo/`). \n`gulp serve:demo-hmr`\u003csup\u003e1\u003c/sup\u003e  | Serves demo application with HMR (hot module replacement)\n`gulp serve:demo-ssr`\u003csup\u003e1\u003c/sup\u003e  | Serves demo application for universal (server side rendering) testing. \n`gulp serve:doc`\u003csup\u003e2\u003c/sup\u003e       | Serves the generated compodoc documentation (from `dist/doc` folder) at https://localhost:8080. \n\n\n\u003e **Note About consuming locally linked library** :\n\u003e\n\u003e In case you encounter the following : **'Error: Unexpected value '[object Object]' imported by the module 'AppModule'. Please add a @NgModule annotation'**, try adding `--preserve-symlinks` to your launch command (eg: `ng serve --preserve-symlinks`, for Angular CLI projects). In fact, this flag is needed to consume locally built/linked libraries (via `npm link`) with `peerDependencies`. See this [post](http://codetunnel.io/you-can-finally-npm-link-packages-that-contain-peer-dependencies/) for more information.\n\n\n\u003e **Note About compodoc and demo application** :\n\u003e\n\u003e compodoc documentation is only available if you chose to use compodoc during generator setup.\n\u003e\n\u003e When serving demo app (via `gulp serve:demo`), in order to access documenation files (which are available at URL `/doc/`),\n\u003e be sure to also serve compodoc's generated documentation files (via `gulp serve:doc`).\n\u003e\n\u003e In development, the url `/doc/` is proxied to redirect to that locally running server for compodoc files (at https://localhost:8080)\n\u003e\n\u003e In production, the generated documentations files are deployed along with the demo application and are available at same url (`/doc/`) from root `index.html`\n\u003e\n\n\n\u003e \u003csup\u003e1\u003c/sup\u003e = This task is only available if you chose not to skip demo app generation during generator setup\n\u003e\n\u003e \u003csup\u003e2\u003c/sup\u003e = This task is only available if you chose to use compodoc during generator setup\n\n### Recipes 🍯\n\nSome useful recipes to help you during the development process can be found [here](recipes/)\n\n### Updating\n\nWhen a new version of the generator is available, you can take advantage of the new features/bug fixes it brings by updating your globally installed version and by re-running it again (from your project root folder).\n\n```\n$ npm install -g generator-ngx-library\n$ yo ngx-library\n```\n\nPlease make sure to read [CHANGELOG](CHANGELOG.md) first, to take all necessary actions for a seamless upgrade.\n\n# Enforcing angular-style  commit messages\n\nThe generator can enforce (via [Commitplease](https://github.com/jzaefferer/commitplease)) that all your commit messages follow [Angular guidelines](https://docs.google.com/document/d/1rk04jEuGfk9kYzfqCuOlPTSJw3hEDZJTBN5E5f1SALo).\n\n![validating commit messages!](assets/validating-commit-msg.png)\n\nThis convention helps making your git mesages more readable and meaningful, in addtion of keeping each commit simple and well focused on a certain scope.\n\nThe generator also takes full advantage of the convention to autogenerate project's `CHANGELOG.md` and Github release notes from Git metadata. Only relevant commit messages are considered (commits about new features, fixes, performance, and breaking changes).\n\nYou can tweak or deactivate (:scream:) the convention by editing the `\"commitplease\"` section in `package.json`. See [here](https://github.com/jzaefferer/commitplease#angularjs.).\n\n\n# Pre-Releasing :checkered_flag:\n\nA set of checks is automatically performed for you prior to releasing (during `gulp release`), to ensure that you are indeed ready for it. Right now, we check that:\n\n* Travis build on `master` branch is passing\n* User is currently on `master` branch\n* User is currently logged in to NPM\n* Option `--version` has been provided to `gulp release` task, with value: `major`, `minor` or `patch`\n* Option `--ghToken` has been provided or env variable `CONVENTIONAL_GITHUB_RELEASER_TOKEN` is set\n\n![pre release checks](assets/pre-release-checks.png)\n\nYou can also run the `gulp pre-release` task alone, to solely perform these checks without actually releasing anything.\n\n**Note:** if you provided `--skip-travis` option (resp. `--skip-gh-releasing`) when running the generator, the Travis build (resp. releasing on Github) will be ignored/skipped.\n\n# Releasing\n\nOnce your killer library is done, then it is time unleash the beast!\n\nNothing is simpler :stuck_out_tongue: \n\n```\n$ gulp release --version=[major|minor|patch] [--ghToken=YOUR_GITHUB_TOKEN]\n\n```\n\nAs you can see above, the releasing task can take 2 parameters:\n\n * **version** (mandatory): Version of the library to release, following [semantic versioning](https://semver.org). Possible values are: `patch`, `minor`, and `major`\n* **ghToken** (optional): Github Token to use to [release on Github](https://help.github.com/articles/creating-releases/).  if no token is provided, default to environment variable `CONVENTIONAL_GITHUB_RELEASER_TOKEN`. \n\u003e **How to setup Github Token** :  Go to [create a new token](https://github.com/settings/tokens/new) and set your  environment variable `CONVENTIONAL_GITHUB_RELEASER_TOKEN` to the token you just created. You can google  [How to set environment variable](https://www.google.com.au/webhp?sourceid=chrome-instant\u0026ion=1\u0026espv=2\u0026ie=UTF-8#q=how%20to%20set%20environment%20variable). The scopes for the token  you need is `public_repo` or `repo` (if you need to access private repos). [More details](https://developer.github.com/v3/oauth/#scopes).\n\nRunning this task will (in that order) :\n\n0. check if ready for release (see [Pre-Releasing](#Pre-Releasing) above) and abort if not\n1. bump the version of your library in `package.json`\n2. update the `CHANGELOG.md` file based on your commit messages (provided they follow the [angular git message convention](https://github.com/conventional-changelog-archived-repos/conventional-changelog-angular/blob/master/convention.md))\n3. commit on `master` branch\n4. create and push a new tag matching the new version\n5. create a new release on Github :octocat: (using the provided token or environment variable `CONVENTIONAL_GITHUB_RELEASER_TOKEN`)\n6. publish the package :package: on [npm registry](https://npmjs.com) (you must be [logged in](https://docs.npmjs.com/cli/adduser) to npm)\n7. build and deploy :rocket: the demo application in `demo/dist` to `gh-pages` branch\n\nThe demo application will be available at : `https://USERNAME.github.io/REPO_NAME/` (provided you chose to generate one).\n\nThe documentation will be available at : `https://USERNAME.github.io/REPO_NAME/doc/` (provided you chose to generate one) or\nat `https://USERNAME.github.io/REPO_NAME/`, if you chose to skip demo application generation.\n\n# Troubleshooting\n\nSee most common problems, and how to solve them [here](TROUBLESHOOTING.md).\n\n# Support\n\nHaving trouble using the generator? Want to discuss about new features to add? Come and join the project's [Gitter](https://gitter.im/generator-ngx-library/Lobby) to chat about it!\n\n# License\n\nCopyright (c) 2018 Tine Kondo. Licensed under the MIT License (MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftinesoft%2Fgenerator-ngx-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftinesoft%2Fgenerator-ngx-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftinesoft%2Fgenerator-ngx-library/lists"}