Angular CLI
Angular CLI jest narzędziem służącym do tworzenia aplikacji Angular i zarządzania nią. Udostępnia możliwości:
- Stworzenie projektu od zera
- Stworzenie elementów frameworku (komponentów, routingu etc).
- Obsługę aplikację (uruchamianie testowe)
- Uruchamianie testów jednostkowych i testów od końca do końca (e2e).
Konfiguracja
Angularny interfejs CLI jest dystrybuowany tylko przez npm i wymaga wersji Node 4 lub wyższej. Instalujemy go za pomocą następującego polecenia:
npm install -g angular-cli
Tworzenie nowej aplikacji
Użyj komendy ng new [nazwa-aplikacji]
, aby utworzyć nową aplikację. Spowoduje to wygenerowanie podstawowej aplikacji w folderze podanej nazwy aplikacji. Aplikacja ma wszystkie dostępne funkcje do pracy z poleceniami CLI. Utworzenie aplikacji może zająć kilka minut, ponieważ npm będzie musiał zainstalować wszystkie zależności. Katalog jest automatycznie konfigurowany jako nowe repozytorium git . Jeśli nie używasz git, po prostu usuń folder .git i plik .gitignore .
Konfiguracja plików i folderów
Wygenerowany folder aplikacji będzie wyglądał następująco:
Konfiguracja aplikacji jest przechowywana w różnych miejscach, niektóre znajdują się w folderze config ( na przykład konfiguracja testów), a niektóre są przechowywane w katalogu głównym projektu (informacje o lintingu i informacje o kompilacji). CLI przechowuje źródła aplikacji w folderze src a kod aplikacji Angular w folderze src/app . Pliki i foldery wygenerowane przez CLI będą zgodne z oficjalnym przewodnikiem po stylu.
Uwaga!: CLI opiera się na niektórych ustawieniach zdefiniowanych w plikach onfiguracyjnych, aby móc wykonywać polecenia. Zachowaj ostrożność podczas ich modyfikowania, szczególnie plik package.json.
CLI zainstalował wszystko, czego potrzebuje podstawowa aplikacja Angular do prawidłowego działania. Aby upewnić się, że wszystko zostało poprawnie uruchomione i zainstalowane, możemy uruchomić serwer.
Uruchamianie aplikacji jako serwera
Interfejs CLI umożliwia obsługę aplikacji z przeładowaniem na żywo (każda zmiana kodu powoduje przeładowanie). Aby uruchomić aplikację wykonaj polecenie: ng serve
. Spowoduje to kompilację aplikacji i skopiowanie wszystkich plików specyficznych dla aplikacji do folderu dist.
Domyślnie ng serve
obsługuje aplikację lokalnie na porcie 4200 (http://localhost:4200\, ale można to zmienić za pomocą argumentu wiersza poleceń:ng serve --port = 8080
.
Tworzenie komponentów
Interfejs CLI może tworzyć komponenty Angular za pomocą polecenia generate
:
ng generate component [nazwa-komponentu]
Wykonanie polecenia tworzy folder [nazwa-komponentu] w ścieżce src/app
projektu lub bieżącej lokalizacji (w której polecenie zostanie wykonane) - o ile jest to folder podrzędny projektu. Folder zawiera następujące elementy:
[nazwa-komponentu] .component.ts
plik klasy komponentów[nazwa-komponentu] .component.css
do stylizacji komponentu[component-name] .component.html
wzorzec komponentu w html[nazwa-komponentu] .component.spec.ts
testy dla komponentuindex.ts
, plik który eksportuje komponent
Tworzenie tras
Komenda ng g m [rmodul] --routing
utworzy moduł (o przykładowej nazwie [rmodul]) i przygotuje dla niego trasy. Więcej szczegółów: https://angular.io/tutorial/toh-pt5
Tworzenie innych obiektów
Interfejs CLI może tworzyć inne obiekty Angular, takie jak usługi, potoki i dyrektywy, za pomocą polecenia generate.
ng generate [encja] [nazwa encji]
To polecenie tworzy encję w src/app/[nazwa-encji].[Encja].ts
wraz z plikiem spec (do testów) katalogu src/app
lub bieżącej lokalizacji (w której polecenie zostanie wykonane) - o ile jest to folder podrzędny projektu. CLI zapewnia gotowe wzorce dla następujących elementów:
Element | Polecenie | Wygenerowane pliki |
---|---|---|
Komponent: | ng g component [nazwa] |
komponent, HTML, CSS, pliki testowe |
Dyrektywa: | ng g directive [nazwa] |
komponent, pliki testowe |
Potok: | ng g pipe [nazwa] |
komponent, pliki testowe |
Usługa: | ng g service [nazwa] |
komponent, pliki testowe |
Klasa: | ng g class [nazwa] |
komponent, pliki testowe |
Trasa: | ng g route [nazwa] |
komponent, HTML, CSS, pliki testowe |
Testowanie
Aplikacje generowane przez CLI integrują testy automatyczne. CLI robi to za pomocą systemu uruchamiania testów Karma.
Testy jednostkowe
Aby wykonać testy jednostkowe, uruchom ng test
. Spowoduje to uruchomienie wszystkich testów dopasowanych przez plik konfiguracyjny Karmy (config/karma.conf.js
). Jest on skonfigurowany tak, aby stosował się do wszystkich plików TypeScript, które domyślnie kończą się na .spec.ts
.
Testy end-to-end
Testy end-to-end można wykonać, uruchamiając ng e2e
. Angular CLI używa framworka protractor. (https://www.protractortest.org/\. Domyślnie korzysta on z adresu localhost:4200.
Można to zmienić w ustawienia konfiguracyjnych e2e/protractor.conf.js
.
Linting (doskonalenie)
Angular CLI ma wbudowane linting. Domyślnie jego konfiguraca tslint.json
. Linting można wykonać, uruchamiając polecenie ng lint
.
Więcej informacji na temat reguł tslint znajdziesz w : https://palantir.github.io/tslint/rules/.
Podpowiedź do CLI
Jedną z zalet korzystania z Angular CLI jest to, że automatycznie konfiguruje wiele przydatnych narzędzi, z których można korzystać od razu. Aby uzyskać więcej informacji na temat opcji dla każdego zadania, użyj ng --help
.
Budowanie
ng build
zbuduje twoją aplikację (i zminimalizuje twój kod) i umieści ją w domyślnej ścieżce dist/
.
Deploy
of deploy
jest wdrażany na stronach GitHub lub Firebase.
Integracja istniejącej aplikacji
Aplikacje, które zostały utworzone bez interfejsu CLI, można zodyfikować tak, by móc korzystać z tego programu. Odbywa się to poprzez przejście do istniejącego folderu aplikacji i uruchomienie ng init
.
Ponieważ struktura folderów dla istniejącej aplikacji może nie być zgodna z formatem utworzonym przez interfejs CLI, polecenie init
ma kilka opcji konfiguracyjnych.
--source-dir
identyfikuje względną ścieżkę do plików źródłowych (domyślnie = src)--prefix
identyfikuje ścieżkę w katalogu źródłowym, w którym znajdują się pliki aplikacji Angular (domyślnie = aplikacja)--style
określa ścieżkę, w której znajdują się dodatkowe pliki stylu (domyślnie = css).