Top Banner
Simplifying Angular project management with Angular CLI
34

Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

May 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

SimplifyingAngular project management

withAngular CLI

Page 2: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Andrea Chiarelli

Software Designer and Developer

Technical Author and Contributor

https://www.linkedin.com/in/andreachiarelli

Page 3: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

In the beginning...

Page 4: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

...nowadays...

Angular 2 isn't one script include like Angular 1.x

Angular 2 is a set of npm packages...

...and a lot of processing:

● Transpiling (translating TypeScript or ES6 into ES5)

● Building (minimization, optimization, source mapping)

● Packaging (creating module bundles for dynamic loading)

● Running (live reloading, environment definition)

● Testing (unit testing, e2e testing)

Page 5: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

A lot of tools...

A lot of processing require a lot of tools:

● Package managers (npm)

● Transpilers (TypeScript, Babel)

● Module bundlers (Webpack, SystemJS)

● Task runners (Gulp, Grunt)

● Scaffolding tools (Yeoman)

● Test runners and frameworks (Karma, Jasmine)

Page 6: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

...and a lot of configuration

Setting up our development environment:

● package.json

● tsconfig.json

● typings.json

● systemjs.config.js or webpack.config.js

● tslint.json

● protractor.config.js

● karma.conf.js

Page 7: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

All thisbefore starting to

write one single line of code

Page 8: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Welcome Angular CLI

A Command Line Interface for managing Angular 2 projects

Page 9: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Welcome Angular CLI

A Command Line Interface for managing Angular 2 projects

● Easy setup of a new Angular application

● It allows to scaffolding code

● It standardises an application structure following the community convention

● It builds applications for development and production environments

● It runs a development server and give us live reload

● It runs unit tests and e2e tests

Page 10: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Very Quick Start

Page 11: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Hello Angular!

Page 12: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

The project's structure

Page 13: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

The project's structure

Page 14: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Live reloading

Page 15: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Generating code

ng generate

Component ng generate component myComponent

Directive ng generate directive myDirective

Pipe ng generate pipe myPipe

Service ng generate service myService

Class ng generate class myClass

Interface ng generate interface myInterface

Enum ng generate enum myEnum

Module ng generate module myModule

Page 16: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Generating components

Page 17: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Generating componentsmy-component.component.ts

Page 18: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Generating componentsmy-component.component.html

Page 19: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Generating componentsmy-component.component.spec.ts

Page 20: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Do I have control?

Page 21: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Third Party LibrariesAngular 2 Modules

Page 22: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Third Party LibrariesStandard npm packages

Page 23: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Third Party LibrariesGlobal Library Installation

angular-cli.json

Page 24: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Building

Page 25: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

BuildingTargets

Target Processing

development bundling, sourcemaps

production bundling, minification, uglification, tree-shaking

The result of a build is stored in /dist folder

Page 26: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Building

Development Production

ng build

ng build --target=development ng build --target=production

ng build --dev ng build --prod

Targets

Page 27: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

BuildingEnvironments

angular-cli.json

Page 28: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

BuildingEnvironments

environment.staging.ts

Page 29: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

BuildingEnvironments

Page 30: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Running tests

Page 31: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Running testsUnit tests

Page 32: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

Running testsEnd-to-end tests

Page 33: Simplifying Angular project management with Angular CLI2016.angularconf.it/assets/slides/angularcli.pdf · Angular 2 isn't one script include like Angular 1.x Angular 2 is a set of

References

● https://cli.angular.io/

● https://github.com/angular/angular-cli