===== Angular CLI создание проекта: основные команды ===== Сегодня начинаем разбирать весьма новый фреймворк JavaScript — Angular. Для того чтобы не писать кучу лишнего кода самому, чтобы его запустить и не тратя на это время — сначала мы изучим инструмент Angular CLI. ===== Что такое Angular CLI ===== Это инструмент созданный командой Google, который помогает увеличить скорость работы с проектом. Чтобы с ним работать вам придется изучить несколько команд, которые прописываются в командной строке. У вас наверное созрел вопрос, а что именно он может? С помощью его вы можете: * Создание стартового проекта. * Создание конфигурационных файлов для деплоймента (deployment — prodaction и development). * Сгенерировать файлы для тестирования. * Проделать минимизацию приложения. * Создавать шаблонные файлы: сервисов (service), компонентов (component), навигационных файлов (route). Также у него в арсенале имеется Webpack, который пользуется большой популярностью. Он нужен чтобы компилировать и запускать проекты во время разработки. Как видите это очень мощный инструмент в разработке больших проектов, и на старте проекта. ===== Установка Angular CLI ===== Теперь давайте установим Angular CLI на ваш ПК. Для этого вам нужно перейти в командною строку. После открытия командной строки вводим строку ниже. Она представляет собой запрос на скачивание пакета npm: npm i @angular/cli -g * ''i'' это укороченная форма слова ''install'' (установить). * Далее идет название нашего пакета — ''@angular/cli''. * ''-g'' означает установить данный пакет глобально на весь компьютер. Иначе мы бы установили его только в папку, из которой была вызвана данная команда и смогли использовать функционал только там. Вот и все работы были сделаны. Теперь можем перейти рассматривать функционал установленного пакета. ===== Команды Angular CLI ===== Все команды должны начинаться со слова — ''ng''. Таким образом мы показываем, что именно хотим использовать Angular CLI. * **ng new [name]** — сгенерирует проект с данным названием — ''[name]''. Вместе с этим установит необходимые зависимости в директорию node_modules — это может занять несколько минут. * **ng serve** — запускает Webpack, который в свою очередь собирает файлы вашего проекта и переносит их в оперативную память вашего компьютера. Если вы замените какой-то файл, то он заново будет пересобирать ваш проект. Перейдите на [[http://localhost:4200/|localhost:4200]] в браузере и сможете увидеть ваш проект. * **ng serve --prod** — также запустит Webpack, но уже будет оптимизировать ваш проект. Таким образом можно уменьшить размер проекта от одной до нескольких сотен килобайт. В нашем случае на ~ 130 кб. * **ng build** — собирает все ваши файлы проекта и переносит их в папку dist. Далее вы можете делать с ними все что угодно — например, залить куда-нибудь на хостинг. * **ng build --prod** — оптимизирует файлы, больше ничем не отличается. * **ng generate [spec_file] [name]** — создает ''[spec_file]'' с названием ''[name]'' и автоматически добавляет(производит import) его в модуль. * **[spec_file]** — это левая колонка таблицы ^Файл^Запрос| |Component|''ng g component name'' | |Service|''ng g service name'' | |Module|''ng g module name'' | |Pipe|''ng g pipe name'' | |Class|''ng g class name'' | |Guard|''ng g guard name'' | |Interface|''ng g interface name'' | |Enum|''ng g enum name'' | |Directive|''ng g directive name'' | |Routing module|''ng g module name --routing'' | Со всем этими файлами вы познакомитесь позже. ===== Замена стилизации в проектах ===== Автоматически Angular CLI генерирует стили с типом ''.css'', но его можно поменять на другие более удобные для вас. Например: * Sass * Scss * Less * Styl Таким образом у нас есть еще один бонус при использовании Angular CLI. Чтобы изменить стилизацию добавьте такой флаг — ''--style=[name]'': ng new my-project --style=scss Также поменяется styles.css на styles.scss и в файле angular.json поменяется на: "styles": [ "src/styles.css" ], ===== Использование встроенных шаблонов ===== По другому это означает использование html шаблона внутри app.component.ts. Сделать это просто нужно лишь добавить дополнительный флаг при инициализации проекта — **--inline-template**:\\ \\ ng new [name] --inline-template templateUrl поменяется на template. Выглядеть это будет так: import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: ` <div style="text-align:center"> <!-- Еще какой-то код --> </div> <h2>Here are some links to help you start: </h2> <ul> <!-- Еще какой-то код --> </ul> `, styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'app'; } =====Создать компонент для конкретного модуля===== Единственный способ использовать CLI для автоматического импорта его в другой модуль-указать ng g component moduleName/newComponent где модуль-это модуль, вы уже определено в вашем проекте. Если moduleName не существует, он поместит компонент в каталог moduleName/newComponent, но все равно импортирует его в приложение.модуль