Lokale Entwicklung
connic dev baut deine Apps auf deinem Rechner, liefert jeden Build unter der URL der App im Dev-Environment aus und baut beim Speichern neu.
Auf dieser Seite
connic dev wendet apps/*.yaml und connectors/*.yaml auf sein Dev-Environment an, wie es ein Deployment tut, und baut jede App lokal mit ihrem eigenen Build-Befehl. Die App läuft dann gegen die Agenten der Dev-Session, mit derselben Anmeldung, denselben Connectors und denselben Zugriffsregeln wie nach einem Deployment.
Voraussetzungen
- Node.js und das Programm, das der Build-Befehl startet, etwa
npm, in deinemPATH. Fehlt etwas davon, nennt connic dev es und baut die App nicht. - Die Abhängigkeiten der App in
apps/<key>/installiert, etwa mitnpm install. connic dev führt nurbuild.commandaus, nicht den Installationsbefehl. - Ein Projekt in einem Tarif, der Apps enthält.
So funktioniert es
connic dev lädt das Projekt hoch, mit
apps/*.yamlundconnectors/*.yaml, aber ohne den Quellcode der Apps.connic legt die Connectors und Apps aus diesen Dateien im Dev-Environment an, ändert sie oder legt sie still, wie bei der Aktivierung eines Deployments, samt Anmeldung, Custom Domains und Zugriffsregeln.
Für jede App führt connic dev
build.commandinapps/<key>/aus, lädt den Ordnerbuild.outputhoch und gibt die URL der App im Dev-Environment aus.
→ Building app portal...
✓ portal → https://portal-7e21c09f.connic.appDas Dev-Environment hat eine eigene App mit eigener URL, die bei einem wiederverwendbaren Dev-Environment gleich bleibt. Dev-Builds werden nicht gecacht, ein Neuladen zeigt also den neuesten. Es gelten dieselben Limits wie bei Deployments: eine index.html im Ausgabeordner und die Ausgabegröße pro App aus dem Tarif.
Apps mit environments
Eine Datei ohne environments erreicht jedes Dev-Environment. Eine Datei mit environments erreicht ein Dev-Environment nur, wenn die Liste es nennt oder die Datei dev setzt. dev gilt für jedes Dev-Environment, das die Liste nicht nennt, kurze Tests eingeschlossen, mit denselben Feldern wie ein Override pro Environment. dev: {} übernimmt den Kopf der Datei unverändert.
environments:
Staging:
auth:
mode: connic
Production: {}
dev: # jedes Dev-Environment, das die Liste nicht nennt
auth:
mode: connicDev-Environments haben eigene Variablen, und ein kurzer Test startet ganz ohne. Einstellungen, die anderswo Variablen lesen, etwa die OIDC-Anmeldung, gehören deshalb in dev. Eine Custom Domain bedient ein einziges Environment; setzt der Kopf der Datei eine, setze domain: null in dev. Die Connectors, die die App auflistet, brauchen ebenfalls dev in ihren Dateien, wenn diese Dateien environments auflisten.
Eine App, die das Dev-Environment nicht bekommt, baut connic dev nicht und nennt den Grund:
! portal: apps/portal.yaml doesn't list test-swift-fox-ab12 in environments; add dev to serve it in connic devNeue Builds
connic dev beobachtet apps/<key>/ und baut die App neu, wenn sich der Inhalt einer Quelldatei ändert. Ignoriert werden node_modules, versteckte Dateien, der Ausgabeordner sowie die Ordner dist, build, out und coverage. Speicherst du apps/<key>.yaml, gelten die neuen Einstellungen, und eine neue App, eine App, die das Dev-Environment jetzt bekommt, oder geänderte build-Einstellungen starten einen Build.
Ein fehlgeschlagener Build gibt die Ausgabe des Befehls aus, und der letzte funktionierende Build bleibt online:
[14:02:11] → Building app portal...
✗ portal: `npm run build` exited with code 1
src/App.tsx(12,5): error TS2322: Type 'string' is not assignable to type 'number'.
The last good build stays live at https://portal-7e21c09f.connic.appConnectors im Dev-Environment
Die Connectors aus connectors/*.yaml werden beim Start der Session und bei jeder Änderung einer Connector-Datei auf das Dev-Environment angewendet, genau wie bei einem Deployment; siehe Verbindungen im Code. Scheitert eine Änderung an einem Connector oder einer App, zeigt connic dev den Fehler, und das Dev-Environment behält seinen vorherigen Stand.