4.7 KiB
4.7 KiB
Knowledge — Figma AI Plugin
Копилка находок и решений по проекту. Не наступай на грабли дважды. Пополняется по ходу разработки. Формат: проблема → решение (+ контекст/ссылка). Hermes имеет право править и дополнять этот файл самостоятельно (см. IDEA.md).
Сборка / окружение
TypeScript 7.x ломает @create-figma-plugin/build
- Симптом:
TypeError: Cannot read properties of undefined (reading 'getCurrentDirectory')приbuild-figma-plugin. - Причина:
build-figma-pluginожидаетts.sys, которого нет в TS 7. - Решение: зафиксировать
typescriptна~5.6.3вpackage.jsondevDependencies. - Ссылка: package.json
tsconfig: не оверрайдить jsx на react-jsx
- Симптом:
error TS5089: Option 'jsxFactory' cannot be specified when option 'jsx' is 'react-jsx'. - Причина: базовый
@create-figma-plugin/tsconfigуже задаётjsx: react+jsxFactory: h. - Решение: в проектном tsconfig только
extends+ добавляемlib/types. Не трогатьjsx/jsxFactory. Preacthуже импортируется вui.tsx. - Ссылка: tsconfig.json
Text muted не существует — используй Muted
- Симптом:
Property 'muted' does not exist on type ... Text. - Решение: для приглушённого текста брать компонент
<Muted>из@create-figma-plugin/ui, а не пропmutedу<Text>. - Ссылка: src/ui.tsx
Плагин не запускается в Figma — нет папки build/ на Matebook
- Симптом: плагин не открывается / Figma молча ничего не делает при Run (ошибка не всегда видна).
- Причина:
manifest.jsonуказываетmain: build/main.jsиui: build/ui.js, но в скопированной на Matebook папке папкиbuild/нет (старая команда синхронизации исключала её через--exclude build). - Решение: пересобрать на VPS (
npm run build) и залить на Matebook ВЕСЬ проект вместе сbuild/— исключать толькоnode_modulesи.git(они для запуска в Figma не нужны, Figma исполняет собранныеbuild/*.js). После распаковки проверить наличиеbuild/main.jsиbuild/ui.js. - Ссылка: IDEA.md (раздел «Рабочий флоу», шаг 4), этот файл (раздел синхронизации через tar).
Рабочий флоу (VPS → Matebook → Figma)
Копия на Matebook через tar (rsync/scp с пробелами в пути падают)
- Симптом:
rsync: command not found(на Windows),scp: ambiguous target(пробел в пути). - Решение:
- На VPS:
npm run build(обязательно — иначе нет папкиbuild/) - На VPS:
tar czf /tmp/x.tar.gz --exclude node_modules --exclude .git .←build/НЕ исключать! scp /tmp/x.tar.gz risow@10.200.201.5:D:/x.tar.gz- На Matebook (PowerShell):
Set-Location 'D:/Figma Plugins/figma-ai-plugin'; tar xzf 'D:/x.tar.gz'
- На VPS:
- Ловушка: старая команда исключала
--exclude build→ в папке плагина на Matebook не былоbuild/, и Figma не находилаbuild/main.js/build/ui.js→ плагин не запускался. См. gotcha «Плагин не запускается — нетbuild/». - Ссылка: IDEA.md (раздел «Рабочий флоу»)
Gitea push через токен в URL
- Симптом:
could not read Usernameприgit push(нет credential helper). - Решение: remote как
http://<TOKEN>:@<host>/admin/figma-ai-plugin.git. Токен должен иметь scopewrite:repository(безwrite:userсоздать репо нельзя — создавать через basic auth admin-ом). - Ссылка: IDEA.md, Gitea http://x1qnvk08zec2u5cx6yh5iexh.155.212.186.39.sslip.io/admin/figma-ai-plugin
Ресурсы (не терять)
- UI Storybook: https://yuanqing.github.io/create-figma-plugin/ui/
- Figma Plugin API docs: https://www.figma.com/plugin-docs/
- Исходный плагин «AI assistant» (движок):
D:\YandexDisk\Figma Plugins DEVs\AI assistant(Matebook)