# Проект для разработки расширений веб-клиента М2
Данный проект представляет собой среду разрабоки расширений.

## Инициализация проекта
После распаковки архива с проектом в корневой папке выполните команду `npm install --legacy-peer-deps`.

## Создание расширений
Для генерации нового расширения выполните команду `npm run generate:plugin`.
Система попросит ввести `<системное_наименование>` и `<отображаемое_наименование>` расширения.
В результате в папке `projects/plugins/src/<системное_наименование>` будет сгенерирован исходный код расширения с демонстрационной реализицей точки расширения, добавляющей кнопку в панель, а также примером регистрации настроек.
Также в блок scripts файла package.json будет добавлена команда `build:<системное_наименование>`, предназначенная для сборки расширения.

## Сборка расширения
Для сборки расширения выполните команду `npm run build:<системное_наименование>`.
В результате будет сгенерирован дистрибутив расширения `dist/<системное_наименование>.js` или `dist/<locale_code>/<системное_наименование>.js`.  

## Отладка расширений
Для отладки расширение можно собрать со следующими параметрами: `--optimization=false --build-optimizer=false`.

## Известные проблемы
При повторной сборке расширения, в исходный код которого не было внесено никаких изменений, могут возникать ошибки, связанные с $localize и regeneratorRuntime. Они являются следствием того, что Angular CLI при сборке приложений и библиотек использует кэш. Отключить его можно командой `ng cache off`.     

Если в расширении используется штатное API для локализации ($localize, i18n, i18n-xyz...), в команду для его сборки необходимо добавить параметр --localize=true (либо активировать локализацию для всех расширений в angular.json: `projects.plugins.architect.build.configurations.production.localize: true`).
