wm push
Build und upload Components zum CMS mit semantischer Versionierung.
Übersicht
wm push kombiniert Build und Upload in einem Befehl. Der Build läuft automatisch vor dem Upload, es sei denn, du verwendest --no-build.
wm pushWas passiert:
- ✅ Prüft auf Änderungen (automatischer Build nur wenn nötig)
- 🔨 Baut Components (falls Änderungen vorhanden)
- 📦 Erstellt neue Version (semantische Versionierung)
- 🚀 Lädt zum CMS hoch
Versionierung
wm push verwendet Semantic Versioning (MAJOR.MINOR.PATCH):
Interaktiver Modus (Standard)
Ohne Flags wirst du gefragt, welche Art von Version du erstellen möchtest:
wm pushOptionen:
- Patch (
x.y.Z) - Bugfixes, kleine Änderungen - Minor (
x.Y.0) - Neue Features, rückwärtskompatibel - Major (
X.0.0) - Breaking Changes - Force (gleiche Version) - Überschreiben (nur Development!)
Automatischer Modus
Übergib Flags für CI/CD oder Automatisierung:
# Patch-Version (0.1.0 → 0.1.1)
wm push --patch
# Minor-Version (0.1.5 → 0.2.0)
wm push --minor
# Major-Version (0.3.2 → 1.0.0)
wm push --major
# Force-Modus: Version nicht erhöhen, überschreiben
wm push --forceBuild-Verhalten
Automatischer Build (Standard)
wm push baut automatisch, wenn:
- Kein Build existiert (
dist/ist leer) - Source-Files neuer sind als Build
$ wm push
# Ausgabe:
Source files changed. Rebuilding components...
Building components...
✓ Build complete!Existierenden Build verwenden
Wenn der Build aktuell ist, wird er wiederverwendet:
$ wm push
# Ausgabe:
Using existing build (up to date).Build überspringen (CI/CD)
Für CI/CD-Pipelines: Build vorher separat ausführen, dann Upload ohne Build:
# In CI/CD Pipeline
wm build
wm push --no-buildAuthentifizierung
Mit Login (Empfohlen)
Nach wm login werden Credentials automatisch verwendet:
wm login
wm pushOhne Login (Environment Variables)
Für CI/CD oder Headless-Umgebungen:
export CMS_TOKEN="your-api-token"
wm push --target https://dein-projekt.cms.example.comBeispiele
Standard-Workflow
# 1. Login
wm login
# 2. Entwickeln
wm dev
# 3. Hochladen (interaktiv)
wm push
? Current version: 0.1.0. How do you want to publish?
❯ Patch (0.1.1) - Bug fixes, small changes
Minor (0.2.0) - New features, backwards compatible
Major (1.0.0) - Breaking changes
Force (0.1.0) - Overwrite current version (development only)
# Ausgabe:
Building components...
✓ Build complete!
Publishing version: 0.1.1
Uploading to https://dein-projekt.cms.example.com...
✓ Upload complete!
Updated wm.config.js with version 0.1.1
✅ Uploaded 5 components to https://dein-projekt.cms.example.com
Version: 0.1.1
Components are now available in your CMS.CI/CD Pipeline
# .github/workflows/deploy.yml
- name: Build
run: wm build
- name: Push to CMS
run: wm push --no-build --patch
env:
CMS_TOKEN: ${{ secrets.CMS_TOKEN }}Bugfix Release
# Bugfix → Patch-Version
wm push --patch
# 0.1.5 → 0.1.6Feature Release
# Neues Feature → Minor-Version
wm push --minor
# 0.1.5 → 0.2.0Breaking Change Release
# Breaking Changes → Major-Version
wm push --major
# 0.3.2 → 1.0.0Development: Schnell iterieren
# Force-Modus: Version nicht erhöhen, existierenden überschreiben
wm push --force
# Warnung: Nur in Development verwenden!
# Production: Immer neue Version erstellenOptionen
| Option | Beschreibung |
|---|---|
-t, --target <url> | CMS-URL (überschreibt Login-Credentials) |
--token <token> | API-Token (überschreibt Login-Credentials) |
--patch | Patch-Version erstellen (x.y.Z) |
--minor | Minor-Version erstellen (x.Y.0) |
--major | Major-Version erstellen (X.0.0) |
-f, --force | Existierende Version überschreiben (Development only) |
--no-build | Build überspringen, existierenden dist/ verwenden |
Fehlerbehebung
"No build found and --no-build specified"
Du hast --no-build verwendet, aber kein Build existiert:
# Lösung 1: Erst bauen
wm build
wm push --no-build
# Lösung 2: Auto-Build verwenden (empfohlen)
wm push"Not logged in and no target URL specified"
Du bist nicht eingeloggt:
# Lösung 1: Einloggen (empfohlen)
wm login
wm push
# Lösung 2: Credentials manuell übergeben
wm push --target https://projekt.cms.example.com --token your-token"Source files changed. Rebuilding components..."
Das ist normal! wm push hat Änderungen erkannt und baut automatisch neu.
Version-Konflikte
Force-Modus funktioniert nur in Development:
# ✓ Development CMS
wm push --force # Funktioniert
# ✗ Production CMS
wm push --force # Fehler: Force mode not allowed in productionLösung: Erstelle eine neue Version:
wm push --patch # oder --minor / --majorBest Practices
1. Semantic Versioning nutzen
# Bugfixes
wm push --patch
# Neue Features
wm push --minor
# Breaking Changes
wm push --major2. Nach Login pushen
# Credentials werden automatisch verwendet
wm login
wm push3. Vor Push testen
# Lokal testen
wm dev
# Dann deployen
wm push4. CI/CD: Build trennen
# Build-Step
wm build
# Deploy-Step
wm push --no-build --patch5. Force nur in Development
# ✓ Development: Schnell iterieren
wm push --force
# ✗ Production: Immer neue Version
wm push --patchVergleich mit anderen Befehlen
| Befehl | Build? | Upload? | Wann verwenden? |
|---|---|---|---|
wm build | ✅ | ❌ | Lokales Testen, CI/CD-Vorbereitung |
wm push | ✅ Auto | ✅ | Standard-Workflow |
wm push --no-build | ❌ | ✅ | CI/CD nach separatem Build |