@coverpixi/cli
v0.1.0
Published
Установщик плагинов Coverpixi: coverpixi list | add | remove
Maintainers
Readme
@coverpixi/cli
Установщик плагинов и тем для игр на Coverpixi.
npm install --save-dev @coverpixi/cliВ проекте, созданном через npm create coverpixi-game, он уже стоит.
Команды
npx coverpixi list # что подключено и что лежит рядом
npx coverpixi add i18n arcade # подключить плагин и тему
npx coverpixi remove arcade # отключитьКак ищется пакет
По короткому имени перебираются четыре варианта, в таком порядке:
@coverpixi/plugin-<имя>coverpixi-plugin-<имя>@coverpixi/theme-<имя>coverpixi-theme-<имя>
Не найдено в node_modules — CLI поставит официальный пакет сам. Стороннее
ставится полным именем: npx coverpixi add @acme/coverpixi-plugin-ads. Угадывать
чужие имена CLI не станет, чтобы не показывать вам чужие 404 из реестра.
Если пакета нет, ищется своё в проекте: папка src/plugins/<имя>/ с
plugin.json или файл src/themes/<имя>.json. Чужое и своё подключаются
одинаково — разница только в том, откуда приехал код.
Что делает add
- ставит npm-пакет, если его ещё нет;
- пишет в
src/plugins/installed.ts— оттуда выводится тип контекста игры; - пишет в
src/plugins/installed.build.ts— если у плагина есть вклад в сборку; - пишет в
src/themes/installed.ts— для тем; - копирует файлы из манифеста (например
.env-режимы площадок); - добавляет команды плагина в
package.json.
remove снимает регистрацию и убирает только те команды, которые сам
добавлял и которые с тех пор не правили. Файлы и сам пакет остаются: удалять
то, что вы могли поправить под себя, установщик не вправе — он скажет, что
оставил.
Сгенерированные файлы переписываются целиком, поэтому править их руками тоже можно: следующий запуск приведёт их к тому же виду.
Манифест плагина
Для пакета — секция coverpixi в его package.json; для своего плагина в
проекте — файл plugin.json рядом с index.ts:
{
"name": "analytics",
"title": "Аналитика",
"description": "Отправка событий. Даёт ctx.analytics.",
"order": 30,
"build": false,
"scripts": {},
"files": [],
"notes": ["Ключ проекта — в coverpixi.config.ts"]
}Тема объявляет "kind": "theme" и кладёт рядом theme.json.
Лицензия
MIT
