@elcrm/icons
v0.1.5
Published
CLI синхронизации иконок elCRM + динамический Icons (набор SVG в npm не входит).
Readme
@elcrm/icons
CLI для синхронизации иконок из icons.elpm.dev в ваш проект.
В npm набор SVG не входит — только CLI и динамический Icons.
Установка
npm install @elcrm/icons
# глобально:
npm i -g @elcrm/iconsCLI (в каталоге приложения)
cd your-app
icons login
icons init # создать проект на icons.* из package.json → .icons
icons update
icons app fnqgs # иконка приложения → public/icon_*.png
icons migrate # import Icons from "./Icons" → import { Icons } from "@elcrm/icons"
icons prune # убрать неиспользуемые локально (-N icons)
icons prune --save # то же + обновить selected на icons.elpm.devicons init берёт name и description из package.json, создаёт проект через API и пишет .icons.
Переопределение: --name=… / --description=…; перезапись .icons: --force.
Вместо init можно вручную: icons remote https://icons.elpm.dev/{login}/{token}.icon.
Без .icons команды update / app завершатся ошибкой «нет удалённого каталога».
icons app <hash> качает прикреплённую иконку приложения (хеш с карточки, без # — в shell # это комментарий) в public/: icon_16x16.png … icon_1024x1024.png, icon.svg, manifest.webmanifest.
icons update всегда пишет в src/icons.generated.tsx
(переопределение: package.json → icons.out, --out, ICONS_OUT).
Форматы
| format | Содержимое файла | Как использовать Icons |
| -------------------- | ------------------------- | ------------------------------------------- |
| register (default) | registerIcons({…}) | import { Icons } from "@elcrm/icons" |
| file | полный standalone Icons | import { Icons } from "./icons.generated" |
Для register один раз в vite.config:
import { icons } from "@elcrm/icons/vite";
export default defineConfig({
plugins: [icons(), react()],
});Icons сам подключает @elcrm/icons/generated — плагин ставит alias на ваш icons.generated.tsx и исключает пакет из optimizeDeps (иначе Vite prebundle отдаёт stub и иконки пустые).
Ручной import "./icons.generated" не нужен.
import { Icons } from "@elcrm/icons";
<Icons.Line name="search" size={20} />;Проверка: hasIcons() / needsRegister() — есть ли уже набор.
Лицензия
MIT © MaSkal
