Установка и конфигурация¶
Для начала работы установите на свой компьютер 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 |
|