You can use the ng generate
or ng g
command to generate Angular building blocks (components, services, pipes, etc.).
You can find all possible blueprints in the table below:
Scaffold | Usage | Shortened |
---|---|---|
Component | ng generate component component-name | ng g c component-name |
Directive | ng generate directive directive-name | ng g d directive-name |
Pipe | ng generate pipe pipe-name | ng g p pipe-name |
Service | ng generate service service-name | ng g s service-name |
Class | ng generate class class-name | ng g cl class-name |
Guard | ng generate guard guard-name | ng g g guard-name |
Interface | ng generate interface interface-name | ng g i interface-name |
Enum | ng generate enum enum-name | ng g e enum-name |
Module | ng generate module module-name | ng g m module-name |
So, for example, if you run ng generate component user-list
- angular-cli will:
user-list
directory in src/app
folder or folder where you have run the command.user-list.component.ts
, user-list.component.html
, user-list.component.css
and user-list.component.spec.ts
)user-list
as a declaration in the @NgModule
decorator of the nearest module.To add a component with a selector [prefix]-user-list
, run:
$ ng g c user-list installing component create src/app/user-list/user-list.component.css create src/app/user-list/user-list.component.html create src/app/user-list/user-list.component.spec.ts create src/app/user-list/user-list.component.ts update src/app/app.module.ts
prefix prevents element name collisions with components in other apps and with native HTML elements. So, for example, if prefix is
app
- generated component will haveapp-user-list
selector.
--prefix false
or -p false
flag$ ng g c user-list --prefix false
import { Component } from '@angular/core'; @Component({ selector: 'user-list', templateUrl: './user-list.component.html', styleUrls: ['./user-list.component.css'] }) export class UserListComponent {}
.spec
files creation add --spec false
or -sp false
flag$ ng g c user-list --spec false installing component create src/app/user-list/user-list.component.css create src/app/user-list/user-list.component.html create src/app/user-list/user-list.component.ts update src/app/app.module.ts
--inline-template
or -it
flag$ ng g c user-list --inline-template installing component create src/app/user-list/user-list.component.css create src/app/user-list/user-list.component.spec.ts create src/app/user-list/user-list.component.ts update src/app/app.module.ts
--inline-style
or -is
flag$ ng g c user-list --inline-style installing component create src/app/user-list/user-list.component.html create src/app/user-list/user-list.component.spec.ts create src/app/user-list/user-list.component.ts update src/app/app.module.ts
--flat
or -f
flag$ ng g c user-list --flat installing component create src/app/user-list.component.css create src/app/user-list.component.html create src/app/user-list.component.spec.ts create src/app/user-list.component.ts update src/app/app.module.ts
You can also combine flags listed above. For example, to create only .component.ts
file without .css
, .html
, .spec
files and folder use the following command.
$ ng g c user-list -f -it -is -sp false installing component create src/app/user-list.component.ts update src/app/app.module.ts
All generate component
flags:
Description | Flag | Shortened | Default Value |
---|---|---|---|
Prevent folder creation | --flat | -f | false |
Prevent prefix usage | --prefix false | -p false | true |
Prevent .spec files creation | --spec false | -sp false | true |
Enable inline html templates | --inline-template | -it | false |
Enable inline styles | --inline-style | -is | false |
To add a directive with a selector [prefix]Highlight
, run:
$ ng g d highlight installing directive create src/app/highlight.directive.spec.ts create src/app/highlight.directive.ts update src/app/app.module.ts
--prefix false
or -p false
flag$ ng g d highlight --prefix false
import { Directive } from '@angular/core'; @Directive({ selector: '[highlight]' }) export class HighlightDirective {}
.spec
files creation add --spec false
or -sp false
flag$ ng g d highlight --spec false installing directive create src/app/highlight.directive.ts update src/app/app.module.ts
--flat false
or -f false
flag$ ng g d highlight --flat false installing directive create src/app/highlight/highlight.directive.spec.ts create src/app/highlight/highlight.directive.ts update src/app/app.module.ts
You can also combine flags listed above. For example, to create only highlight.directive.ts
file inside highlight
folder without .spec
file use the following command.
$ ng g d highlight -f false -sp false installing directive create src/app/highlight/highlight.directive.ts update src/app/app.module.ts
All generate directive
flags:
Description | Flag | Shortened | Default Value |
---|---|---|---|
Enable folder creation | --flat false | -f false | true |
Prevent prefix usage | --prefix false | -p false | true |
Prevent .spec files creation | --spec false | -sp false | true |
To add a service with a name UserService
, run:
$ ng g s user installing service create src/app/user.service.spec.ts create src/app/user.service.ts
.spec
files creation add --spec false
or -sp false
flag$ ng g s user --spec false installing service create src/app/user.service.ts
--flat false
or -f false
flag$ ng g s user --flat false installing service create src/app/user/user.service.spec.ts create src/app/user/user.service.ts
You can also combine flags listed above. For example, to create only user.service.ts
file inside user
folder without .spec
file use the following command.
$ ng g s user -f false -sp false installing service create src/app/user/user.service.ts
All generate service
flags:
Description | Flag | Shortened | Default Value |
---|---|---|---|
Enable folder creation | --flat false | -f false | true |
Prevent .spec files creation | --spec false | -sp false | true |
To add a pipe with a name searchByName
, run:
$ ng g p search-by-name installing pipe create src/app/search-by-name.pipe.spec.ts create src/app/search-by-name.pipe.ts update src/app/app.module.ts
.spec
files creation add --spec false
or -sp false
flag$ ng g p search-by-name --spec false installing pipe create src/app/search-by-name.pipe.ts update src/app/app.module.ts
--flat false
or -f false
flag$ ng g p search-by-name --flat false installing pipe create src/app/search-by-name/search-by-name.pipe.spec.ts create src/app/search-by-name/search-by-name.pipe.ts update src/app/app.module.ts
You can also combine flags listed above. For example, to create only search-by-name.pipe.ts
file inside folder search-by-name
folder without .spec
file use the following command.
$ ng g p search-by-name -f false -sp false installing pipe create src/app/search-by-name/search-by-name.pipe.ts update src/app/app.module.ts
All generate pipe
flags:
Description | Flag | Shortened | Default Value |
---|---|---|---|
Enable folder creation | --flat false | -f false | true |
Prevent .spec files creation | --spec false | -sp false | true |
To add a module called GuestModule
, run:
$ ng g m guest installing module create src/app/guest/guest.module.ts
.spec
files creation add --spec
or -sp
flag$ ng g m guest --spec installing module create src/app/guest/guest.module.spec.ts create src/app/guest/guest.module.ts
--routing
or -r
flag$ ng g m guest --routing installing module create src/app/guest/guest-routing.module.ts create src/app/guest/guest.module.ts
You can also combine flags listed above. For example, to create module with routing and specs use the following command.
$ ng g m guest -sp -r installing module create src/app/guest/guest-routing.module.ts create src/app/guest/guest.module.spec.ts create src/app/guest/guest.module.ts
All generate module
flags:
Description | Flag | Shortened | Default Value |
---|---|---|---|
Enable .spec files creation | --spec | -sp | false |
Enable routing | --routing | -r | false |
Parameter | Description |
---|---|
component or c | Used to generate component |
directive or d | Used to generate directives |
service or s | Used to generate services |
pipe or p | Used to generate pipes |
class or cl | Used to generate classes |
enum or e | Used to generate enums |
interfaces or i | Used to generate interfaces |
guard or g | Used to generate guards |
module or m | Used to generate modules |
--flat or -f | Used to enable/disable directory creation |
--inline-template or -it | Used to enable/disable inline html templates in components |
--inline-style or -is | Used to enable/disable inline styles in components |
--prefix or -p | Used to disable or change prefix |
--spec or -s | Used to enable/disable .spec files creation |
--skip-import | Used to skip the module import |
--app or -a | Used to specify app name to use |
--module or -m | Used to specify the declaring module |
--view-encapsulation or -ve | Used to specify the view encapsulation strategy in components |
--change-detection or -cd | Used to specify the change detection strategy in components |
--routing or -r | Used to specify if routing module file should be generated |