Перейти к содержанию

Зависимости npm рабочего пространства

📅 28.02.2022

Angular Framework, Angular CLI и компоненты, используемые в приложениях Angular, упакованы как npm-пакеты и распространяются с помощью npm-регистра.

Вы можете загрузить и установить эти пакеты npm с помощью клиента npm CLI, который устанавливается вместе с приложением Node.js® и запускается как приложение. По умолчанию Angular CLI использует клиент npm.

В качестве альтернативы вы можете использовать yarn client для загрузки и установки пакетов npm.

Информацию о необходимых версиях и установке Node.js и npm смотрите в Local Environment Setup.

Если на вашей машине уже запущены проекты, использующие другие версии Node.js и npm, воспользуйтесь nvm для управления несколькими версиями Node.js и npm.

package.json

И npm, и yarn устанавливают пакеты, которые определены в файле package.json.

Команда CLI ng new создает файл package.json при создании нового рабочего пространства. Этот package.json используется всеми проектами в рабочем пространстве, включая начальный проект приложения, который создается CLI при создании рабочего пространства.

Изначально этот package.json включает стартовый набор пакетов, некоторые из которых требуются Angular, а другие поддерживают общие сценарии приложений. Вы добавляете пакеты в package.json по мере развития вашего приложения.

Вы можете даже удалить некоторые из них.

В package.json организованы две группы пакетов:

Пакеты Подробности
Зависимости Необходимые для запуска приложения.
DevDependencies Необходимы только для разработки и сборки приложений.

По умолчанию команда CLI ng generate library создает package.json для новой библиотеки. Этот package.json используется при публикации библиотеки в npm.

Более подробную информацию можно найти на вики-странице CLI Library Support.

Зависимости

Пакеты, перечисленные в разделе dependencies файла package.json, необходимы для запуска приложений.

Раздел dependencies в package.json содержит:

Пакеты Подробности
Angular packages Ядро Angular и дополнительные модули; их имена пакетов начинаются с @angular
Support packages Сторонние библиотеки, которые должны присутствовать для работы приложений Angular
Polyfill packages Полифиллы заполняют пробелы в реализации JavaScript в браузере

Чтобы добавить новую зависимость, используйте команду ng add.

Пакеты Angular

Следующие пакеты Angular включены в качестве зависимостей в файл по умолчанию package.json для нового рабочего пространства Angular. Полный список пакетов Angular см. в API reference.

Название пакета Подробнее
@angular/animations Библиотека анимации Angular позволяет легко определять и применять анимационные эффекты, такие как переходы между страницами и списками. Более подробную информацию можно найти в руководстве Animations guide.
@angular/common Часто используемые сервисы, трубы и директивы, предоставляемые командой Angular. Модуль HttpClientModule также находится здесь, в подпапке @angular/common/http. Для получения дополнительной информации см. руководство HttpClient.
@angular/compiler Компилятор шаблонов Angular. Он понимает шаблоны и может преобразовывать их в код, обеспечивающий запуск и рендеринг приложения. Обычно вы не взаимодействуете с компилятором напрямую, а используете его косвенно с помощью platform-browser-dynamic при JIT-компиляции в браузере. Более подробную информацию можно найти в руководстве Ahead-of-time Compilation guide.
@angular/core Критические части фреймворка, необходимые каждому приложению. Включает в себя все декораторы метаданных, Component, Directive, инъекцию зависимостей и хуки жизненного цикла компонентов.
@angular/forms Поддержка как template-driven, так и reactive forms. Информацию о выборе оптимального подхода к созданию форм для вашего приложения см. в разделе Введение в формы.
@angular/platform-browser Все, что связано с DOM и браузером, особенно те части, которые помогают рендерить в DOM. Этот пакет также включает метод bootstrapModuleFactory() для загрузки приложений для производственных сборок, которые предварительно компилируются с помощью AOT.
@angular/platform-browser-dynamic Включает провайдеров и методы компиляции и запуска приложения на клиенте с помощью JIT-компилятора.
@angular/router Модуль маршрутизатора осуществляет навигацию между страницами вашего приложения при изменении URL-адреса браузера. Более подробная информация приведена в разделе Маршрутизация и навигация.

Пакеты поддержки

Следующие пакеты поддержки включены в качестве зависимостей в файл по умолчанию package.json для нового рабочего пространства Angular.

Имя пакета Подробности
rxjs Многие API Angular возвращают observables. RxJS является реализацией предложенной спецификации Observables, которая в настоящее время находится на рассмотрении комитета TC39, определяющего стандарты для языка JavaScript.
zone.js Angular полагается на zone.js для запуска процессов обнаружения изменений Angular, когда собственные операции JavaScript вызывают события. Zone.js является реализацией спецификации, которая в настоящее время находится на рассмотрении комитета TC39, определяющего стандарты для языка JavaScript.

Пакеты полифиллов

Во многих браузерах отсутствует встроенная поддержка некоторых функций в последних стандартах HTML, которые необходимы Angular. Полифиллы могут эмулировать недостающие возможности.

В руководстве Browser Support объясняется, каким браузерам нужны полифиллы и как их можно добавить.

DevDependencies

Пакеты, перечисленные в секции devDependencies файла package.json, помогают вам разрабатывать приложение на вашей локальной машине. Вы не развертываете их вместе с производственным приложением.

Чтобы добавить новую devDependency, используйте одну из следующих команд:

1
npm install --save-dev <package-name>

1
yarn add --dev <package-name>

Следующие devDependencies предоставляются в файле по умолчанию package.json для нового рабочего пространства Angular.

Название пакета Подробнее
@angular-devkit/build-angular Инструменты сборки Angular.
@angular/cli Инструменты Angular CLI.
@angular/compiler-cli Компилятор Angular, который вызывается командами Angular CLI ng build и ng serve.
@types/... Файлы определений TypeScript для сторонних библиотек, таких как Jasmine и Node.js.
jasmine/... Пакеты для поддержки тестовой библиотеки Jasmine.
karma/... Пакеты для поддержки тестового прогона karma.
typescript Сервер языка TypeScript, включающий компилятор TypeScript tsc.

Связанная информация

Информацию о том, как Angular CLI работает с пакетами, можно найти в следующих руководствах:

Темы Подробности
Сборка и обслуживание Как пакеты собираются вместе для создания сборки разработки
Развертывание Как пакеты объединяются для создания производственной сборки

Ссылки

Комментарии