@emdash-cms/plugin-cli ist die Autoren-Toolchain: Scaffolding, Build, Watch, Validierung, Bundle, Veröffentlichung plus Identität und Discovery. Die Binary heißt emdash-plugin.
Die CLI verwendet ein Atmosphere-Konto als Publisher-Identität.
Befehle
emdash-plugin init [name] Neues sandboxed Plugin erstellen
emdash-plugin build dist/ bauen
emdash-plugin dev Quellen überwachen und bei Änderung neu bauen
emdash-plugin bundle dist/ + Assets in ein Registry-Tarball packen
emdash-plugin validate [path] emdash-plugin.jsonc validieren
emdash-plugin publish Bauen, hochladen und Release veröffentlichen
emdash-plugin profile setup Signiertes Paketprofil vorbereiten
emdash-plugin release setup GitHub Actions Workflow erstellen
emdash-plugin login <handle-or-did> Mit Atmosphere-Konto anmelden
emdash-plugin logout [--did <did>] Aktive Sitzung widerrufen
emdash-plugin whoami Gespeicherte Sitzungen anzeigen
emdash-plugin switch <did> Aktive Publisher-Sitzung wechseln
emdash-plugin search <query> Freitext-Registry-Suche
emdash-plugin info <handle-or-did> <slug> Paketdetails anzeigen
{
"scripts": {
"build": "emdash-plugin build",
"dev": "emdash-plugin dev"
}
}
init
npx @emdash-cms/plugin-cli init my-plugin
Erstellt ein eigenständiges Plugin mit emdash-plugin.jsonc, src/plugin.ts, package.json, tsconfig.json, Test, README und .gitignore.
build
| Artefakt | Beschreibung |
|---|---|
dist/plugin.mjs | Hooks und Routen. |
dist/manifest.json | Das Plugin-Manifest. |
dist/index.mjs | Das Deskriptor-Modul für astro.config.mjs. |
dev
Überwacht src/**, emdash-plugin.jsonc und package.json mit 150ms Debouncing.
validate
emdash-plugin validate
Offline-Schema-Prüfung mit tsc-artiger Diagnose.
bundle
- Führt
buildaus. - Validiert das Bundle.
- Sammelt optionale Assets.
- Erstellt Tarball.
publish
emdash-plugin login alice.example.com
emdash-plugin publish
Vollständige Anleitung: Bundling und Veröffentlichung.
profile setup
emdash-plugin profile setup
release setup
emdash-plugin release setup
Folgen Sie Automatisierte Plugin-Releases.
Programmatische API
import { buildPlugin, bundlePlugin } from "@emdash-cms/plugin-cli";
await buildPlugin({ dir: "./my-plugin" });
const result = await bundlePlugin({ dir: "./my-plugin" });