Установка и конфигурация¶
Для начала работы установите на свой компьютер node.js не ниже 8 версии.
Далее установите глобально в системе @angular/cli
:
1 |
|
@angular/cli
— это интерфейс командной строки для работы с Angular, его использование значительно облегчает процесс разработки. Например, одной командой можно сгенерировать полностью сконфигурированное работающее приложение или создать новую сущность (модуль, сервис, компонент и т. д.) в существующем приложении. Более подробно здесь.
Конечно, можно сделать все самостоятельно, но это гораздо сложнее и ни к чему, когда имеется готовый инструмент. Поэтому здесь и далее будет использоваться интерфейс командной строки, на этом этапе установка Angular может считаться завершенной.
Для создания нового проекта просто нужно выполнить:
1 |
|
Запуск команды ng new
создает базовое приложение в папке my-app
.
Структура my-app
:
e2e
— директория с интеграционными тестами;node_modules
— установленные npm-модули;src
— исходные файлы;angular.json
— описание конфигурации;package.json
— метаинформация и список необходимых npm-модулей;README.md
— описание ПО;tsconfig.json
— общая конфигурация typescript;tslint.json
— настройка tslint.
Структура src
:
app
— модули, компоненты, сервисы, директивы и т. д.;assets
— статический контент (изображения, аудио);environments
— конфигурации для каждой среды запуска;favicon.ico
— иконка, отображаемая в верхней части вкладки браузера;index.html
;karma.conf.js
— конфигурация protractor (для e2e-тестов);main.ts
— необходим для запуска в режиме разработки, использует JIT-компиляцию;polyfills.ts
— список модулей, подключаемых для поддержки кроссбраузерности;styles.css
— описание действующих глобально стилей;test.ts
— отвечает за поиск и загрузку тестов при их запуске;tsconfig.app.json
— настройка typescript;tsconfig.spec.json
— настройка typescript при запуске unit-тестов.
angular.json¶
Следующий шаг после установки Angular и изучения структуры "скелета" приложения — настройка. angular.json
— главный конфигурационный файл так называемого Angular Workspace (директория my-app), сгенерированного с использованием @angular/cli
и объединяющего в себе множество проектов (само приложение и созданные библиотеки для него).
Основные свойства:
version
— версия Angular Workspace;newProjectRoot
— указывает, где будут располагаться внутренние приложения и библиотеки, по умолчанию projects;projects
— описание конфигураций для каждого из элементов Angular Workspace. По умолчанию вместе с основным генерируется проект с интеграционными тестами. Опции:root
— определяет директорию с файлами, включая конфигурационные, всего проекта;sourceRoot
— определяет директорию с исходными файлами;projectType
— тип проекта, может быть толькоapplication
илиlibrary
;prefix
— префикс, который будет использоваться при именовании компонентов и директив;schematics
— позволяет задавать отличную от по умолчанию конфигурацию сущностей Angular, например, можно для всех создаваемых компонентов переопределить работу механизма Change Detection;architect
— используется для настройки запуска или сборки.
defaultProject
— имя проекта, который будет использоваться при использовании команд Angular CLI (по умолчанию основной).
Рассмотрим подробно в angular.json
параметр build
свойства architect
. Здесь нас интересуют options
и configurations
.
В options
указываются следующие опции:
outputPath
— путь, где будет находиться "собранный" проект (подробно о сборке здесь);index
— путь кindex.html
;main
— путь кmain.ts
;polyfills
— путь кpolyfills.ts
;tsConfig
— путь кtsconfig.app.json
;assets
— массив с указанием путей к статическому контенту, могут быть папки или отдельные файлы;styles
— массив с указанием путей к стилям, причем стили распространяются на все приложение;scripts
— массив с указанием путей к javascript-файлам, обычно здесь подключаются сторонние библиотеки, не являющиеся модулями Angular, например, jQuery.
Всегда подключайте сторонние скрипты и стили не в index.html
, а в angular.json
.
В configurations
указываются настройки, связанные со средой окружения (environment, далее СО) работы приложения.
Каждое свойство объекта configurations
— название СО с объектом настроек среды в качестве значения.
1 |
|
СО указывается при запуске (сборке) в качестве параметра --configuration
(краткая запись -c
).
В объекте настроек СО множество параметров, назначение большинства которых понятно из их названия. Остановимся на fileReplacements
.
В директории environments
по умолчанию находятся два файла: environment.ts
и environment.prod.ts
. В них указываются параметры, зависящие от СО, например, адрес сервера, с которого будут запрашиваться данные. По умолчанию используется environment.ts
.
Объект, используемый в качестве значения fileReplacements
, позволяет переопределить источник для указанной СО.
Можете открыть angular.json
и найти соответствующий код.
1 2 3 4 |
|
Директория app¶
Теперь разберем подробно содержимое src/app
.
Минимально каждое приложение должно состоять из одного корневого модуля, содержащего обособленные функциональные части — компоненты. Также корневой модуль может обращаться к компонентам других модулей.
Архитектура детально описана в следующей главе.
Объявление корневого модуля находится в src/app/app.module.ts
.
app.module.ts
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Здесь импортируются все модули и компоненты приложения.
Декоратор @NgModule()
создает корневой модуль, которому передается объект конфигурации со свойствами:
imports
— используемые второстепенные модули Angular;declarations
— все компоненты приложения;bootstrap
— основной компонент, отвечающий за загрузку.
Название может быть любым, но общепринято использовать AppModule
.
Основной компонент приложения — AppComponent
.
app.component.ts
1 2 3 4 5 6 7 8 |
|
За объявление компонента отвечает декоратор @Component()
из @angular/core
. Принимаемый объект:
selector
— название компонента;template
(templateUrl
) — HTML-разметка в виде строки (путь к HTML-файлу);styles
— массив путей к CSS-файлам, содержащим стили для создаваемого компонента.
Это не все свойства декоратора @Component()
, полное описание здесь.
Хорошей практикой считается вынесение HTML-разметки в отдельные файлы.
Чтобы убедиться в работоспособности происходящего, из папки my-app
необходимо выполнить:
1 |
|
По умолчанию приложение запускается по адресу http://localhost:4200
, а наличие параметра -o
указывает на то, что после компиляции оно автоматически откроется в браузере.
Для указания другого порта используйте параметр --port
.
1 |
|