Инструкции
Миграция на Q.Palette 8

Миграция на QPalette 8.0

Новая версия QPalette использует версию Angular 21 и PrimeNG 21. Остальные зависимости также обновлены до последних совместимых версий.

Автоматическая миграция

⚠️ Мигратор находится в стадии бета-тестирования. При возникновении проблем, напишите в команду Q.Palette.

Большинство шагов миграции можно выполнить автоматически с помощью инструментов командной строки Q.Palette.

Установите инструменты командой:

npm install -g @diasoft/qpalette-cli@8 --registry=http://repolib-main.diasoft.ru:8081/repository/npm-public-and-diasoft --prefer-online
⚠️

Указывайте именно полный реестр npm-public-and-diasoft — он отдаёт и @diasoft/*, и публичные пакеты, от которых зависит сам CLI. Флаг --prefer-online заставляет npm перечитать список версий с реестра, а не брать устаревший из локального кеша.

И запустите миграцию:

qpalette migrate

После запуска выберите пункт "Обновление Q.Palette 7.x → 8.x".

Мигратор автоматически:

  • Обновляет версию Q.Palette, Angular и PrimeNG.
  • Выполняет необходимые миграции.
  • Дает рекомендации при необходимости.

⚠️ После выполнения миграции проверьте логи на наличие предупреждений и выполните рекомендации.

Дополнительные возможности запуска

Мигратор автоматически перестраивает разметку PrimeNG под v21 (вкладки TabView, аккордеоны, переименования компонентов и свойств, значения severity, директивы полей ввода и внутренние импорты), поэтому большинство правок делать вручную не нужно.

Полезные параметры (полный список — qpalette migrate --help):

  • --registry <url> — запуск вне корпоративного контура: адрес реестра с пакетами @diasoft/* (нужно зеркало с ними).
  • --skip-steps <ids> — пропустить отдельные этапы миграции (id через запятую).
  • --no-create-commits / --create-commits <префикс> — управление пошаговыми коммитами без интерактивного вопроса.

Пакет primeflex продукту на 8.x не нужен: утилиты PrimeFlex приходят со стилями палитры, а primeflex 3+ переименовал классы и вёрстку на p-* не даст. Если продукт пакет не подключает (нет упоминаний в angular.json, стилях, коде и шаблонах), мигратор удалит его из зависимостей сам; если подключает — оставит и перечислит файлы, где убрать подключение. Подробнее — Подключение PrimeFlex.

💡

Jenkinsfile не обязателен: если проект собирается другим CI (например, GitLab CI), мигратор продолжит работу, выведя предупреждение.

Если возникли проблемы и проект не удается собрать, потребуется выполнить соответствующие шаги вручную согласно инструкции ниже.

Возможные проблемы

npm install -g @diasoft/qpalette-cli@8
npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/@diasoft%2fqpalette-cli - Not found
npm error 404
npm error 404  '@diasoft/qpalette-cli@8' is not in this registry.
npm error 404
npm error 404 Note that you can also install from a
npm error 404 tarball, folder, http url, or git url.
npm error A complete log of this run can be found in: /Users/username/.npm/_logs/2026-05-28T07_23_28_470Z-debug-0.log

В этом случае проверьте, что у вас верно установлен registry.

Если установка падает с ETARGET No matching version found for <пакет> (например, @inquirer/core@^12.0.3) — нужной версии публичной зависимости нет в вашем реестре по умолчанию либо в устаревшем локальном кеше npm. Установите CLI командой из начала инструкции — с полным реестром npm-public-and-diasoft и флагом --prefer-online. Если ошибка остаётся, напишите в команду Q.Palette.

Если у вас есть свои библиотеки (ng-packagr, например @diasoft/qcrm-core-ui-lib), запустите qpalette migrate в корне библиотеки: мигратор распознаёт библиотечные проекты (с @diasoft/qpalette-* в peerDependencies) и переводит их так же автоматически.

Если стили выглядят некорректно

В main.ts вашего angular-проекта вставьте:

providePrimeNG({
      theme: 'none',
    })

Это обязательно нужно делать при ручной миграции и проверить после автоматической. Данная строчка принудительно выключает стилизацию primeng которая конфликтует со стилизацией qpalette. Пример из документации q.palette (opens in a new tab)

Техническая информация

  • Необходимая версия NodeJS: 22.17
  • Стабильная версия Angular: 21.2.+ (Можно обновлять до последней для избежания уязвимостей)
  • Стабильная версия PrimeNG: 21.1.5