Пользовались этим инструментом? Оцените его
Пользовались этим инструментом? Оцените его
Angular — это фреймворк для веб-приложений с открытым исходным кодом, сопровождаемый выделенной командой в Google, распространяемый по лицензии MIT и устанавливаемый из npm, а не покупаемый. angular.dev — его официальный дом документации.
Фреймворк Angular имеет выраженную позицию и не является библиотекой. Маршрутизация, формы, внедрение зависимостей, HTTP, интернационализация, тесты и сборочная цепочка поставляются как компоненты первой стороны и версионируются вместе. Именно такую сделку фреймворк и предлагает: меньше свободы в выборе библиотеки под каждое место в обмен на то, что эти места заполнены единообразно и обновляются в ногу.
Разработка идёт открыто. Каждый pull request и каждый коммит публичны на GitHub, команда там же разбирает issue, а крупные изменения проходят через опубликованные RFC, прежде чем попасть в код. Текущая линия — v22, выпущенная в июне 2026 года.
Сигналы Angular — примитив реактивности, мелкогранулярная модель в сочетании с оптимизациями времени компиляции вместо обхода всего дерева компонентов при обнаружении изменений. По этой оси фреймворк движется уже несколько релизов, и v22 завершил переход, доведя Signal Forms, Angular Aria и асинхронные API реактивности до готового к продакшену состояния.
Поддерживаются и серверный рендеринг, и генерация статических сайтов, с полной гидратацией DOM, так что приложение можно доставить в виде предварительно отрисованной разметки, а затем передать управление клиенту, не выбрасывая и не пересобирая DOM.
Angular CLI публикуется в npm как пакет @angular/cli и предоставляет исполняемый файл ng, покрывая из одной точки создание каркаса, разработку, тестирование, развёртывание и сопровождение. Под ним сборочный конвейер построен на Vite и esbuild.
За срок жизни проекта две возможности CLI весят больше остальных:
Angular DevTools встаёт рядом с собственными инструментами разработчика в браузере и добавляет инспектор дерева компонентов, представление дерева внедрения зависимостей и настраиваемую flame-диаграмму профилирования производительности. Со стороны тестов Vitest стал основным тестовым раннером после стабильного релиза, а инструмент миграции с Karma движется к стабильности.
Санитизация HTML и поддержка trusted types встроены и нацелены на межсайтовый скриптинг и подделку запросов. Интернационализация покрывает перевод и форматирование сообщений, включая синтаксис ICU из Unicode. В обоих случаях фреймворк поглощает заботу, которая иначе стала бы выбором библиотеки в каждом проекте отдельно.
Задокументированный вход не начинается с локальной цепочки инструментов: интерактивная среда StackBlitz означает, что локальная настройка не нужна, пока вы сами её не захотите. На этапе оценки того, подходят ли соглашения фреймворка команде, это убирает вопрос версии Node из первого часа решения.
Поддержка версий Angular ограничена во времени, а не бессрочна, поэтому обновление — плановая работа, а не опция. Практическая последовательность такова: запустить ng update сразу для CLI и пакетов ядра, дать автоматизированным преобразованиям кода, которые обрабатывают рутинные ломающие изменения, выполнить механическую часть, а затем зарезервировать время на разбор тех изменений, к которым не прилагается скрипт миграции. Для линии v22 команда миграции — ng update @angular/cli@^22 @angular/core@^22.
Насколько болезненным окажется конкретное обновление, определяют две вещи. Во-первых, находится ли проект на поддерживаемой версии вообще: перескок через несколько неподдерживаемых мажорных версий означает прогон миграций по очереди, а не одним прыжком. Во-вторых, зависите ли вы от API, вошедших в окно устаревания, поскольку они будут удалены на мажорной границе.
Задокументированных путей три, и выбирают их по тому, где место вызову модели, а не по предпочтениям: Genkit для серверной логики, Firebase AI Logic для клиентских вызовов и Gemini API напрямую. Genkit требует поддерживаемой серверной среды, например сервера на Node, что на практике означает полностековое приложение Angular с SSR, а не чисто клиентскую сборку.
Правило безопасности, привязанное ко всем трём, недвусмысленно: никогда не размещайте ключ API в файле, который уходит на клиент, например в environments.ts. Клиентские приложения должны направлять вызовы модели через Firebase AI Logic или подконтрольный вам прокси; серверные подключения должны читать учётные данные из менеджера секретов или переменных окружения.
Angular подходит командам, которые предпочитают унаследовать решения, а не принимать их. Фреймворк поставляет модель маршрутизации, модель форм, контейнер внедрения зависимостей и сборочный конвейер и ожидает, что вы ими воспользуетесь. Для большой или обновляющейся команды эта согласованность и есть смысл; для проекта из двух человек она может читаться как церемония.
Хорошо подходит, когда:
Плохо подходит, когда:
Angular нацелен на веб-платформу, и его охват определяется двумя опубликованными матрицами, а не общим заявлением о совместимости.
Поддержка браузеров определяется по набору Baseline «widely available», а не по вручную поддерживаемому списку версий. Для каждой мажорной версии команда выбирает дату Baseline вблизи релиза и поддерживает браузеры, выпущенные в пределах 30 месяцев от выбранной даты в Chrome, Edge, Firefox и Safari, нацеливаясь примерно на 95% пользователей веба. Дата Baseline для v22 — 2026-05-07.
Матрица инструментов строже и заслуживает проверки до обновления, а не во время него. v22 закрепляет TypeScript на линии 6.0 и принимает Node 22.22.3, 24.15.0 или 26.0.0, тогда как v21 находится на линии TypeScript 5.9. Внутри проекта версии @angular/core и CLI должны совпадать, поскольку с v7 у них общий мажорный номер.
Документация предрелизных линий подаётся отдельно на next.angular.dev, поэтому оценка невыпущенной возможности не сводится к чтению стабильной документации с угадыванием, что изменилось.
Здесь нет ни прайс-листа, ни счёта мест, ни платного уровня: фреймворк выпущен под лицензией MIT, и каждый пакет устанавливается из публичного реестра npm. Уведомление об авторском праве в лицензии репозитория гласит 2010-2026 Google LLC, метаданные npm для @angular/core несут ту же декларацию MIT, а текущий опубликованный релиз — 22.1.5.
То, что эта лицензия разрешает, широко. MIT допускает коммерческое использование, изменение, распространение и частное использование, а условия сводятся к сохранению уведомлений об авторском праве и лицензии; программное обеспечение предоставляется без гарантий. На практике это означает отсутствие платы за разработчика, отсутствие учёта использования и отсутствие коммерческой лицензии, которую нужно согласовывать перед выпуском построенного на нём продукта.
Оставшаяся стоимость относится не к лицензированию, а к сопровождению. Поскольку мажорные версии покидают поддержку по опубликованному графику, реальная строка бюджета — инженерное время на ежегодное обновление плюс ёмкость CI, которую съедают сборка и тестовые наборы. Командам, оценивающим совокупную стоимость, стоит оценить этот ритм, а не предполагать, что бесплатная лицензия означает бесплатную зависимость.
Каждый мажорный релиз обычно поддерживается 24 месяца, разделённые на двенадцать месяцев активных обновлений и двенадцать месяцев долгосрочной поддержки, несущей только критические исправления и исправления безопасности. Это твёрдая граница, а не рекомендация: на момент написания всё от v2 до v19 полностью вне поддержки, и в активной поддержке остаётся только v22, а v21 и v20 находятся в LTS.
Фаза LTS уже, чем предполагает формулировка «всё ещё поддерживается». Исправление рассматривается, только если оно устраняет вновь обнаруженную уязвимость безопасности или регрессию с начала LTS, вызванную сторонним изменением, таким как новая версия браузера. Обычные ошибки, найденные в период LTS, в область не входят.
Устаревание идёт по собственным часам. Устаревший API переживает как минимум ещё один мажорный релиз, то есть период не менее двенадцати месяцев, и лишь затем становится кандидатом на удаление на мажорной границе — а в течение этого окна он сопровождается по правилам LTS, то есть получает только критические исправления и исправления безопасности, даже пока остальной релиз находится в активной поддержке.
v22 показывает форму этой работы. Независимое освещение релиза отмечает, что поддержка Webpack, включая более старые пакеты build-angular и ngtools, объявлена устаревшей, что релиз требует TypeScript 6 и отказывается от Node 20, и что два пункта требуют ручного вмешательства, поскольку миграция не предоставлена. Изменение с самым широким охватом относится к поведению, а не к структуре: OnPush стал стратегией обнаружения изменений по умолчанию для компонентов, а прежнее значение по умолчанию переименовано в Eager, при этом схематики компенсируют это, явно размечая существующие компоненты.
Обратная совместимость проверяется, но не абсолютна. Изменения прогоняются через модульные и интеграционные тесты, сравнение определений типов публичного API и тестовые наборы зависимых приложений самой Google — и всё же политика оставляет оговорку, что в исключительных случаях, таких как критические патчи безопасности, исправление может принести обратно несовместимые изменения.
Ещё две границы поменьше стоит назвать прямо. У полифилов есть задокументированный потолок: они не превращают старый медленный браузер в современный быстрый, а предлагаемый набор покрывает лишь то, что необходимо для запуска полноценного приложения Angular, поэтому возможностям за пределами этого набора может потребоваться больше. Официальная страница политики задаёт полный ритм: мажорный выпуск примерно раз в двенадцать месяцев, от четырёх до шести минорных выпусков на каждый мажорный и патч или предварительная сборка почти каждую неделю. При этом по самому мажорному интервалу опубликованные источники расходятся — один описывает двенадцатимесячный цикл, а другой по-прежнему описывает шестимесячный, — причём официальная страница политики дополнительно отмечает, что более длинный цикл начался с v22. Тому, кто строит многолетний бюджет обновлений, стоит подтверждать текущий ритм по странице политики, а не по вторичному освещению.
Да. Фреймворк выпущен под лицензией MIT, и каждый пакет устанавливается из публичного реестра npm; лицензия разрешает коммерческое использование, изменение и распространение при условии сохранения уведомлений об авторском праве и лицензии. Программное обеспечение предоставляется без гарантий.
Двадцать четыре месяца в сумме для типичной мажорной версии: двенадцать месяцев активных обновлений и двенадцать месяцев долгосрочной поддержки, несущей только критические исправления и исправления безопасности. После этого версия полностью покидает поддержку.
v22 находится в активной поддержке, v21 и v20 — в LTS. Всё от v2 до v19 полностью вне поддержки.
v22 закрепляет TypeScript на линии 6.0 и принимает Node 22.22.3, 24.15.0 или 26.0.0. Матрица версий публикуется для каждого релиза, и её стоит сверить до начала обновления, а не в процессе.
Значительную часть берёт на себя CLI: ng update выполняет автоматизированные преобразования кода, которые обрабатывают рутинные ломающие изменения. Чего он не покрывает — поведенческие изменения без скрипта миграции; в v22 к ним относились значение маршрутизации по умолчанию без предоставленной миграции и устаревание поддержки Webpack.
Поддержка следует определению Baseline «widely available»: браузеры, выпущенные в пределах 30 месяцев от выбранной даты в Chrome, Edge, Firefox и Safari, с прицелом примерно на 95% пользователей веба. Каждая мажорная версия выбирает свою дату Baseline вблизи релиза.
Для оценки — да. Интерактивная среда StackBlitz означает, что локальная настройка не нужна, пока вы сами её не захотите, и именно это задокументированная отправная точка для браузерных руководств.
Выбирайте путь по тому, где место вызову, — Genkit для серверной логики, Firebase AI Logic для клиентских вызовов и Gemini API напрямую — и соблюдайте правило для учётных данных: никогда не размещайте ключ API в файле, который уходит на клиент, например в environments.ts.