Scaffolding
Generate Angular Artifacts
Add--dry-run
or-d
option to following commands to see which artifacts will be created, without actually creating them.
# generate domain. optional flags: --platform <web/mobile/desktop/node> --app <appName> --lazy <true/false>
# defaults platform=web, app=defaultProject, lazy=true
nx g @xmlking/nxp-ddd:domain home
nx g @xmlking/nxp-ddd:domain dashboard
nx g @xmlking/nxp-ddd:domain admin
# generate feature module. optional flags: --platform <web/mobile/desktop/node> --lazy --entity <entity>
# defaults platform=web, lazy=true, entity= no entity created
nx g @xmlking/nxp-ddd:feature blog --domain home
nx g @xmlking/nxp-ddd:feature landing --domain home
nx g @xmlking/nxp-ddd:feature account --domain dashboard --entity account
with angular schematics (a.k.a. @nrwl/angular which is default inangular.json
)
# ng g @nrwl/angular:lib ...
ng g lib home --routing --lazy --parent-module=apps/webapp/src/app/app.module.ts --defaults --tags=layout,entry-module
ng g lib dashboard --routing --lazy --parent-module=apps/webapp/src/app/app.module.ts --defaults --tags=layout,entry-module
ng g lib admin --routing --lazy --parent-module=apps/webapp/src/app/app.module.ts --defaults --tags=layout,entry-module
ng g lib NotFound --routing --lazy --parent-module=apps/webapp/src/app/app.module.ts --defaults --tags=entry-module
ng g lib experiments --routing --lazy --parent-module=libs/dashboard/src/lib/dashboard.module.ts --defaults --tags=child-module
ng g lib widgets --routing --lazy --parent-module=libs/dashboard/src/lib/dashboard.module.ts --defaults --tags=child-module
ng g lib accounts --routing --lazy --parent-module=libs/dashboard/src/lib/dashboard.module.ts --defaults --tags=child-module
# generate `node`, `nest` `grpcweb` modules for generated code for proto
nx g @nrwl/workspace:library node --directory=gen --testEnvironment=node --tags=scope:shared,type:generated,platform:web -d
nx g @nrwl/workspace:library nest --directory=gen --testEnvironment=node --tags=scope:shared,type:generated,platform:nest -d
nx g @nrwl/workspace:library grpcweb --directory=gen --tags=scope:shared,type:generated,platform:web -d
nx g @nrwl/workspace:library grpcweb2 --directory=gen --tags=scope:shared,type:generated,platform:web -d
# ng g worker app --project=webapp -d # TODO
with no-framework (a.k.a. @nrwl/workspace schematics)
ng g @nrwl/workspace:lib gen --tags=utils --defaults -d
ng g @nrwl/workspace:lib tree --tags=utils --defaults -d
ng g @nrwl/workspace:lib utils --tags=utils --defaults -d
ng g @nrwl/workspace:lib animations --tags=utils --defaults -d
# system wide `models` module
ng g @nrwl/workspace:lib models --tags=utils --defaults -d
ng g interface User --project=models --type=model -d
ng g interface JwtToken --project=models --type=model -d
ng g interface Profile --project=models --type=model -d
ng g interface Image --project=models --type=model -d
ng g enum ImageType --project=models -d
ng g enum Gender --project=models -d
ng g enum AccountSourceType --project=models -d
ng g enum ZoneType --project=models -d
ng g enum EnvironmentType --project=models -d
ng g interface Labels --project=models --type=model -d
ng g interface Membership --project=models --type=model -d
ng g interface ResourceQuota --project=models --type=model -d
ng g interface Project --project=models --type=model -d
ng g interface Cluster --project=models --type=model -d
with angular schematics (a.k.a. @nrwl/angular which is default inangular.json
)
# add `core` angular module which will be only inported into root/app module.
ng g lib core --tags=scope:core --defaults -d
# add global services for `core` Module
ng g service services/Layout --project=core -d
ng g service services/PageTitle --project=core -d
ng g service services/ServiceWorker --project=core -d
ng g service services/MediaQuery --project=core -d
ng g service services/DeepLink --project=core -d
ng g service services/Feature --project=core -d
ng g service services/Analytics --project=core -d
ng g service services/PushNotification --project=core -d
ng g service services/InMemoryData --project=core --skip-tests -d
ng g service services/Profile --project=core --skip-tests -d
ng g service services/hammer --project=core --skip-tests --type=config -d
ng g service services/AppConfig --project=core --skip-tests -d
ng g service services/Auth --project=core --skip-tests -d
ng g @ngxs/schematics:state state/auth --spec=false --sourceRoot=libs/core/src/lib --project=core -d
ng g @ngxs/schematics:state state/preference --spec=false --sourceRoot=libs/core/src/lib --project=core -d
ng g @ngxs/schematics:state profile --path=state --spec=false --sourceRoot=libs/core/src/lib --project=core -d
ng g guard guard/auth --project=core --implements CanActivate -d
ng g guard guard/admin --project=core --implements CanActivate -d
ng g @ngxs/schematics:store --name=auth --spec --project=core --sourceRoot=libs/core/src/lib -d
ng g i interfaces/RouterStateData --project=core -d
ng g i interfaces/UserInfo --project=core -d
# add `shared` module which will encapsulate angular and 3rd party modules, needed for all `Lazy-loaded Feature Modules`
ng g lib shared --tags=scope:shared --defaults -d
# generate containers, components for `shared` Module
ng g service containers/entity/entity --project=shared
ng g component components/entityTable --project=shared --export=true
ng g component containers/entity --project=shared --skip-import
ng g component containers/entityForm --project=shared --skip-import
# generate containers for `NotFound` Module
ng g component containers/NotFound --project=not-found -d
### generate `Reusable lib Modules`