Skip to content

De CLI gebruiken ​

De CLI heeft drie taken: de lokale service starten, draaiende projecten beheren en componentupdates vanuit de terminal publiceren. De drie binaire namen comphub, ch en comp-hub wijzen naar hetzelfde programma.

Overzicht van commando's ​

CommandoFunctie
comphubStart de lokale service voor het huidige project
comphub statusBekijk de status van de master en alle draaiende projecten
comphub stop <hash>Stop een opgegeven project
comphub stop --allStop alle projecten
comphub killSluit de master en alle projecten af
comphub fixRuim achtergebleven runtime-bestanden op
comphub loginAanmelden via browserautorisatie en de inloggegevens opslaan
comphub upload [compDir]Een nieuwe versie publiceren voor een al gepubliceerd component
comphub install <component[@versie]>Een gepubliceerd openbaar component naar de huidige map downloaden

De service starten ​

bash
comphub

Parameters:

ParameterKortStandaardBeschrijving
--port-p5478Servicepoort
--dir-d./Hoofdmap van de componenten
--log-level-lerrordebug / info / warn / error
--version-v—Toon de versie
--help-h—Toon de help
bash
comphub -p 8080
comphub -d ./src
comphub -l debug

De poortparameter werkt alleen als de master nog niet draait

Draait er al een service, dan hergebruikt de CLI de bestaande poort en meldt dat -p wordt genegeerd. Voer eerst comphub kill uit als je een andere poort nodig hebt.

Na de start print de terminal:

Version  0.44.11
Project  D:\project\my-app
Hash     94525912
Port     5478
URL      http://localhost:5478/94525912/main/

Hash is de identificatie van de huidige map; het stop-commando gebruikt die. Met Ctrl+C beëindig je de loguitvoer van het huidige project en wordt het project automatisch uitgeschreven.

Configuratiebestand ​

Maak in de hoofdmap van het project een .comphub.json- of .comphub.js-bestand aan:

json
{
  "dir": "./src",
  "allowDebug": false
}
Configuratie-itemTypeStandaardBeschrijving
dirstring./Hoofdmap van de componenten; uploaden/downloaden kan alleen binnen deze map en submappen
allowDebugbooleanfalseOf de debugmodus is toegestaan
proxyobject—Proxyregels, in dezelfde indeling als http-proxy-middleware

.comphub.js exporteert volgens het modulesysteem van het project:

js
// CommonJS
module.exports = { dir: "./src" };

// ESM (package.json heeft "type": "module")
export default { dir: "./src" };

Laadvolgorde: .comphub.json → .comphub.js → standaardwaarden. Prioriteit van de configuratie: commandoregelparameters > configuratiebestand > standaardwaarden.

Proxyregels ​

Componentdemo's draaien in een iframe en kunnen alleen de lokale service bereiken. Moet je een intranetbackend of een API zonder CORS-headers aanroepen, dan stuur je het verzoek met proxy door:

json
{
  "proxy": {
    "/api": {
      "target": "http://10.0.0.5:8080",
      "changeOrigin": true,
      "pathRewrite": { "^/api": "" }
    }
  }
}

In de demo doe je het verzoek zo:

js
fetch("/__proxy__/api/users");

Toelichting op de regels:

  • De key matcht het pad ná /__proxy__, met prefix of reguliere expressie.
  • De waarde gaat ongewijzigd naar http-proxy-middleware; target is verplicht.
  • pathRewrite werkt nadat het prefix /__proxy__ is verwijderd.
  • Zonder treffende regel krijg je 404 {"message":"Proxy not found"}.
  • Regels gelden alleen voor het project dat ze declareert.

Bekijken en stoppen ​

bash
comphub status          # Bekijk de master en de projectlijst
comphub stop 94525912   # Stop een opgegeven project
comphub stop --all      # Stop alle projecten
comphub kill            # Sluit de master en alle projecten af
comphub fix             # Ruim achtergebleven runtime-bestanden op

status toont per project de hash, het pad en het toegangsadres. fix is bedoeld voor het geval een eerdere abnormale afsluiting runtime-bestanden heeft achtergelaten waardoor het starten mislukt.

Aanmelden ​

bash
comphub login

De CLI vraagt eenmalig om autorisatie en opent een browserpagina. Nadat je daar hebt bevestigd, worden de inloggegevens opgeslagen in ~/.comphub/credentials.json. Je hoeft per machine maar één keer aan te melden.

bash
comphub login --no-browser   # Alleen het autorisatieadres tonen

Een autorisatiesessie is eenmalig: een sessie die op goedkeuring wacht verloopt na 2 minuten en de CLI wacht maximaal 5 minuten. Zijn de inloggegevens verlopen, voer dan opnieuw comphub login uit.

Een nieuwe versie publiceren ​

comphub upload is alleen voor componenten die al eerder zijn gepubliceerd. De eerste publicatie loopt via Uploaden en publiceren.

bash
cd src/components/MyComponent
comphub upload -m "tooltip-positionering gecorrigeerd"
ParameterKortBeschrijving
--message-mToelichting op de upgrade, verplicht
--dry-run—Alleen valideren en tonen, niet indienen
--dir-dResourcemap, met dezelfde betekenis als bij het starten

Bij het uitvoeren doet de CLI het volgende:

  1. Het project vinden waartoe het component behoort.
  2. Zorgen dat dat project een lokale service heeft (zo niet, dan start de CLI er een).
  3. De componentmap indienen; de server valideert, precompileert dependencies en uploadt.

Het indienen kan enkele minuten duren; de CLI hanteert een time-out van 10 minuten.

Het versienummer moet groter zijn dan de online versie

Is de version in de lokale comp.json niet groter dan de online versie, dan weigert de CLI direct. Hoog na het wijzigen van de code eerst het versienummer op en upload daarna. Wijzig je alleen de omschrijving of previewconfiguratie, gebruik dan de updatepagina.

Een component installeren ​

comphub install downloadt de broncode-zip van een gepubliceerd openbaar component en pakt die uit in de huidige map.

bash
comphub install ThemeSwitch
comphub install ThemeSwitch@1.0.0
comphub install ThemeSwitch --force
ArgumentKortBeschrijving
<component>—Naam van het component; moet een gepubliceerd openbaar component zijn
@versie—Optioneel; zonder versie wordt de nieuwste geïnstalleerd
--force-fVervangt ./<component>/ als het al bestaat
--remote—Adres van de remote service, zelfde betekenis als bij andere commando's

Bij het uitvoeren doet de CLI het volgende:

  1. Het component wordt op exacte naam gezocht tussen gepubliceerde openbare componenten.
  2. De broncode-zip wordt gedownload (kleine pakketten direct, grote via een ondertekende OSS-URL).
  3. De inhoud wordt uitgepakt naar ./<component>/, waarbij de map component_versie/ uit de zip wordt verwijderd.

Je hebt geen login of lokale service nodig. Dependencies worden niet geïnstalleerd; volg de README van het component.

ThemeSwitch/
├── index.vue        # index.jsx / index.tsx voor React
├── comp.json
├── README.md
└── demo/

--force vervangt de map

De bestaande map wordt pas verwijderd nadat het nieuwe pakket is uitgepakt; als de laatste vervanging mislukt, is de oude map niet te herstellen. Commit lokale wijzigingen eerst.

Veelvoorkomende fouten:

  • Component niet gevonden: alleen gepubliceerde openbare componenten zijn installeerbaar; de CLI toont nabije namen.
  • Versie niet gevonden: de CLI toont de huidige gepubliceerde versie.
  • Doel bestaat al: voeg --force toe om te vervangen.

Meerdere projecten parallel ​

Verschillende projecten kunnen tegelijk draaien, elk met een eigen poort:

bash
# Terminal 1
cd /path/to/project-a && comphub

# Terminal 2
cd /path/to/project-b && comphub

comphub status

Veelgestelde vragen ​

Bij het starten wordt gemeld dat je moet upgraden

Voer volgens de melding npm install comp-hub@latest -g uit en start daarna opnieuw.

Uploaden geeft een fout over het versienummer

De lokale versie is niet groter dan de online versie. Hoog version in comp.json op, of dien de metadata via de updatepagina in.

Indienen geeft een time-out / het resultaat is niet te bevestigen

Probeer niet direct opnieuw. Controleer eerst op het platform of de nieuwste versie al is bijgewerkt en beslis daarna of je opnieuw verstuurt.

Na het starten opent de browser niets

Controleer of je de volledige URL uit de terminal gebruikt (inclusief /{hash}/main/) en niet alleen de poort.

Volgende stappen ​

Door gebruikers geüploade componenten zijn open source