Зависимости 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 |
|
1 |
|
Следующие 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 работает с пакетами, можно найти в следующих руководствах:
Темы | Подробности |
---|---|
Сборка и обслуживание | Как пакеты собираются вместе для создания сборки разработки |
Развертывание | Как пакеты объединяются для создания производственной сборки |