Поиск по сайту
Ctrl + K
Вопросы по Angular

Что такое ngcc?

ngcc (Angular Compatibility Compiler) — это инструмент, который используется в Angular для обработки пакетов, написанных с использованием старой версии Angular (например, до Angular 9) и конвертирования их в совместимые с Ivy форматы. Ivy — это новый рендерер, который был введён в Angular 9, и он предоставляет множество новых возможностей, включая ускорение загрузки приложений и оптимизацию работы с памятью.

Зачем нужен ngcc?

Когда вы используете сторонние библиотеки, которые ещё не были обновлены для работы с Ivy, вам необходимо запустить ngcc для преобразования этих библиотек в формат, совместимый с новым рендерером. Это позволяет вашему приложению работать с этими библиотеками, не сталкиваясь с проблемами совместимости.

Вот несколько основных причин, почему стоит использовать ngcc:

  • Совместимость: ngcc делает старые библиотеки совместимыми с новым рендерером, что позволяет использовать более широкий ассортимент пакетов.
  • Оптимизация: Ivy предлагает более быструю компиляцию и загрузку, что делает ваши приложения более производительными.
  • Сообщество: Активные разработчики Angular вносят изменения в пакеты, и использование ngcc помогает оставаться на передовой в использовании новых возможностей Angular.
  • Как использовать ngcc?

    Ngcc обычно вызывается автоматически в рамках процесса сборки вашего проекта Angular. Это происходит, когда вы запускаете команды, такие как ng serve или ng build. Однако вы также можете запускать ngcc вручную.

    Пример запуска ngcc вручную

    Допустим, у вас установлен Angular CLI и вы хотите запустить ngcc вручную:

  • Откройте терминал в корне вашего проекта.
  • Введите команду:
  • ngcc
    

    Это выполнит ngcc на всех доступных пакетах в вашем проекте.

    Конфигурация ngcc

    Вы также можете настроить ngcc, указав параметры в файле tsconfig.app.json вашего приложения. Вот как это можно сделать:

    {
      "angularCompilerOptions": {
        "enableIvy": true,
        "enableResourceInlining": true,
        "enableNgcc": true
      }
    }
    

    Заключение

    Ngcc — это важный инструмент для разработчиков, использующих Angular, особенно при переходе на Ivy. Он обеспечивает совместимость ваших приложений с существующими библиотеками и помогает использовать преимущества новых возможностей Angular. Понимание ngcc и правильная его настройка могут значительно упростить разработку и улучшить производительность ваших приложений.