CLI opensd
Команды opensd, сборка для каждого языка, общий кеш Rust и режим разработчика.
opensd создаёт, собирает, проверяет и упаковывает плагины на любом языке. Это один бинарный файл около 2 МБ без рантайма WebAssembly внутри. Способы установки перечислены в быстром старте.
Команды выполняются внутри каталога проекта, если не сказано иное.
Сборка
- Rust:
cargo build --lib --release --target wasm32-unknown-unknown. Каталогtargetобщий для всех плагинов и лежит в кеше пользователя:%LOCALAPPDATA%\opensd\target,~/Library/Caches/opensd/targetили~/.cache/opensd/target.OPENSD_SHARED_TARGET=0или собственныйCARGO_TARGET_DIRотключают это поведение. Инкрементальный кеш выключен: для маленького крейта он только занимает место. - JavaScript: сборки нет, берётся файл из
runtime.main. - TypeScript и другие сборщики: если в проекте есть
package.jsonсо скриптомbuild, CLI вызываетnpm run buildи берёт результат изruntime.main. - Другие языки WebAssembly: соберите модуль своим инструментом в путь из
runtime.mainи вызовитеopensd pack. Модуль должен соблюдать ABI.
В пакет попадают код, manifest.json, index.json, файлы из package.include (по умолчанию assets и ui), а также LICENSE и NOTICE, если они есть. Скрытые файлы, node_modules, target и dist пропускаются.
Режим разработчика
- В приложении включите «Режим разработчика» в «Настройки», «Плагины». Приложение запишет порт и токен в
opensd-dev.jsonв своей папке данных. - Запустите
opensd devв проекте. CLI найдёт файл сам; на нестандартной установке передайте его через--endpoint. - Плагин заменяет установленную копию с тем же id, пока идёт сессия. Каждое изменение файла пересобирает и перезапускает его, журнал выводится в терминал.
- Ctrl+C завершает сессию. Через 15 секунд без сигнала приложение возвращает установленную версию само.
Связь идёт только по 127.0.0.1 и требует токен из файла. Запросы из браузера с заголовком Origin приложение отклоняет.