Zum Hauptinhalt springen

Jutro Platform CLI-Befehle

Die Jutro Digital Platform CLI verwendet einen Basisbefehl jutro, mit optionalen Befehlen je nach Funktion:

Sie können den generate-Befehl zum Beispiel mit dem Argument themes verwenden, um eine .css-Datei zu erstellen, die für eine neue Theme-Definition in einer Jutro-App verwendet werden kann.

jutro generate:themes

Auf dieser Seite machen Sie sich mit Folgendem vertraut:

  • Optionen und Befehle, die Jutro Digital Platform CLI bereitstellt
  • Wie Sie diese Befehle ausführen
Tip: Die cli-platform-Befehle von Jutro müssen ausgehend vom

Stamm Ihrer Jutro-App ausgeführt werden.

Was stellt die Jutro Platform CLI bereit?​

Um alle verfügbaren Befehle in der Jutro Platform CLI zu finden, führen Sie Folgendes aus:

jutro --help

Dies liefert eine Ausgabe ähnlich der folgenden:

The CLI tool for Jutro Digital Platform

VERSION
@jutro/cli-platform/0.17.2-next.0 darwin-x64 node-v16.14.2

USAGE
$ jutro [COMMAND]

TOPICS
generate Generates i18n translations for your Jutro app
validate Validates your Jutro app to ensure that it follows Guidewire standards

Sie können die Befehlsoptionen auch mit dem folgenden Befehl finden:

jutro generate --help

Um weitere Informationen zu den einzelnen Funktionsbefehlen zu erhalten, z. B themes, führen Sie den folgenden Befehl aus:

jutro generate:themes --help

Liste der Befehle​

Die folgenden Befehle sind in der Jutro Platform CLI verfügbar:

Codemod-Befehle​

BefehlBeschreibung
Link
jutro codemod:anwendenFührt codemod-Skripte aus, um Ihren Anwendungscode zu aktualisieren.Link zum entsprechenden Abschnitt

Generierungsbefehle​

BefehlBeschreibung
Link
jutro generate:i18nGeneriert Internationalisierungsübersetzungen für die Jutro-App.Link zum entsprechenden Abschnitt
jutro generate:themesGeneriert eine Theme-Definitionsdatei für die Jutro-App.Link zum entsprechenden Abschnitt
jutro generate:buildInfoGeneriert Build-Informationen für die Anwendung und schreibt sie in eine JSON-Datei.Link zum entsprechenden Abschnitt
jutro generate:componentErzeugt Basiskomponenten.Link zum entsprechenden Abschnitt
jutro generate:digital-sdkErzeugt ein SDK für eine Jutro-Anwendung.Link zum entsprechenden Abschnitt

Validierungsbefehle​

BefehlBeschreibung
Link
jutro validate:dependenciesValidiert die Abhängigkeiten der Jutro-App.Link zum entsprechenden Abschnitt
jutro validate:foldersValidiert die Ordnerstruktur der Jutro-App.Link zum entsprechenden Abschnitt
jutro validate:i18nValidiert die Internationalisierungsübersetzungen in der Jutro-App.Link zum entsprechenden Abschnitt
jutro validate:lintersValidiert die Linter-Konfiguration in der Jutro-App.Link zum entsprechenden Abschnitt
jutro validate:migrationsValidiert die Migrationen in der Jutro-App.Link zum entsprechenden Abschnitt
jutro validate:testsValidiert die in der Jutro-App definierten Tests.Link zum entsprechenden Abschnitt
jutro validate:lighthouseGeneriert einen Lighthouse-Bericht in der Jutro-App.Link zum entsprechenden Abschnitt
jutro validate:metadataValidiert Metadatendateien anhand eines angegebenen Schemas.Link zum entsprechenden Abschnitt

App-Befehle​

BefehlBeschreibung
Link
jutro app:testsFührt die Unit-Tests der App aus.Link zum entsprechenden Abschnitt
jutro app:startBündelt und startet die Jutro-App.Link zum entsprechenden Abschnitt
jutro app:buildErstellt einen Anwendungs-Build.Link zum entsprechenden Abschnitt

Codemod-Befehle​

Codemods auf die Anwendung anwenden​

jutro codemod:apply --name=<CODEMOD-NAME>

Der Befehl codemod:apply wird verwendet, um Codemods auszuführen, die Ihren Anwendungscode ändern. Sie können mit dem --name-Argument jeweils ein Codemod verwenden. Weitere Einzelheiten zu den verfügbaren Codemods finden Sie in der Codemod-Dokumentation

Parameter
BeschreibungStandardwert
--nameName eines auszuführenden Codemods.Kein Standardwert.
--codemodsModuleSpeicherort des Moduls, das das Codemod enthält, das Sie ausführen möchten. Wenn keine lokale Version gefunden wird, wird npm verwendet, um das Modul in einem temporären Ordner zu installieren.@jutro/codemods
--projectPathPfad zu dem Verzeichnis, in dem die Codemods ausgeführt werden. Dabei kann es sich um einen Projektstamm oder ein Unterverzeichnis eines Projekts handeln..
--tmpDirEin temporäres Verzeichnis, das für das Caching von Codemods verwendet wird. Wenn kein Wert angegeben wird, wird das temporäre Systemverzeichnis verwendet.Temporäres Systemverzeichnis.

generate-Befehle​

Internationalisierungsübersetzungen generieren​

jutro generate:i18n

Mit dem generate:i18n-Befehl werden Internationalisierungsübersetzungen (i18n) für Ihre Jutro-App generiert. Die CLI extrahiert die Meldungen aus allen JSX- und Metadaten-Dateien, die in der App gefunden wurden, und gruppiert sie standardmäßig in zwei Übersetzungsdateien:

  • src/i18n/lang.json – die Vorlagen-Übersetzungsdatei
  • src/i18n/yy.json – die Sherlock-Übersetzungsdatei

Die Vorlagendatei lang.json sollte als Basis für die Übersetzung Ihrer Anwendung in andere Sprachen verwendet werden. Sie müssen für jede Sprache Übersetzungsdateien erstellen, z. B. en.json für Englisch und de.json für Deutsch. Legen Sie sie dann in src/i18n in Ihrem Anwendungsordner ab, damit sie von Jutro aufgenommen werden können.

Note: Nehmen Sie keine Änderungen an der Datei lang.json vor, da diese bei jedem Build der Anwendung überschrieben werden würden.

Die Sherlock-Übersetzung wird verwendet, um nicht übersetzte Schlüssel in Ihrem Code zu identifizieren.

Die erzeugten Dateien haben die folgende Struktur:

lang.json:

{
"jutro-app.Pages.Settings.header": "Settings",
"jutro-app.Pages.Settings.title": "Settings",
"jutro-app.app.commonAvatar.welcomePage": "Go to the Welcome Page"
}

yy.json:

{
"jutro-app.Pages.Settings.header": "[2TbH15_Settings]",
"jutro-app.Pages.Settings.title": "[2IeCt0_Settings]",
"jutro-app.app.commonAvatar.welcomePage": "[3OqyfH_Go to the Welcome Page]"
}

Der Befehl generate:i18n akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--metadataMessageOutputDirDefiniert das Ausgabeverzeichnis für die extrahierten Metadatenmeldungen.i18n
--jsxMessageOutputPathDefiniert das Ausgabeverzeichnis für die extrahierten JSX-Meldungen.i18n/src/js-jsx-strings.json
--messagesFileNamePatternDefiniert, wo die extrahierten Meldungen gespeichert werden.i18n/src/**/*.json
--mergeBizCompOutputDirDefiniert den Ausgabedateinamen der zusammengeführten Übersetzungen.i18n/biz-comp-translations
--languageOutputFileNameDefiniert die Vorlage für die Sprachausgabedatei.lang.json
--pseudoTypeDefiniert den zu verwendenden Pseudotyp. Kann einer von 'expansion', 'sherlock' oder 'both' sein.sherlock
--pseudoOutputFileNameDefiniert die Vorlage für den Ausgabedateinamen.yy.json
--editorProjectIdDefiniert die Editor-Projekt-ID und aktiviert Editor-i18n-Übersetzungen.ID in editorProject.json
--editorMessageOutputPathDefiniert das Ausgabeverzeichnis für die extrahierten Editor-Meldungen.i18n/editorTranslations.json
--helpGibt Details über den Befehl zum Terminal aus.Keine Argumente akzeptiert.

Theme-Definitionen für Jutro-Apps generieren​

jutro generate:themes

Mit dem Befehl generate:themes wird das bereitgestellte von Design-Tokens-definierte Theme in ein von CSS-Variablen definiertes Theme, das in der Jutro-Anwendung verwendet werden kann, umgewandelt und zugeordnet. Die Befehlszeilenschnittstelle (CLI) verwendet die Datei .themesConfig.json, um eine .css-Datei basierend auf den in der Konfiguration definierten Design-Token-Eingabedateien zu generieren.

Wenn keine .themesConfig.json-Datei vorhanden ist und Sie den Befehl ausführen, werden Sie von der CLI aufgefordert, die folgenden Informationen anzugeben, sofern diese nicht bereits mit den Parametern angegeben sind:

  1. Name des Themes.
  2. Der Ausdruck, der den Eingabepfad des Theme-Tokens angibt (der Standardpfad ist src/tokens/**/*.json).
  3. Der Name der Ausgabedatei.
  4. Der Pfad für die optionale Zuordnung von benutzerdefinierten Variablen zu Token.
  5. Der Pfad für die optionale benutzerdefinierte Transformation.
  6. Die Option, um ein weiteres Theme hinzuzufügen.

Der Befehl generate:themes akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--configPath,-cDefiniert den Pfad des Verzeichnisses, in dem sich die Datei .themesConfig.json befindet.Aktuelles Arbeitsverzeichnis.
--encapsulateThemes,-sWenn die Anwendung als Micro Frontend verwendet wird, sind die generierten Themes auf diese App begrenzt, und nicht der Shell-App zugewiesen. Der CSS-Selektor enthält den scopeName der App.false
--helpGibt Details über den Befehl zum Terminal aus.Keine Argumente akzeptiert.
--clearCacheLöscht den Cache. Melden Sie sich hiermit als anderer Benutzer an.Keine Argumente akzeptiert.
--cliInfoZeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an.Keine Argumente akzeptiert.
--resetSetzt die Konfiguration auf die Standardeinstellung zurück und löscht den Cache.Keine Argumente akzeptiert.
Note: Für den Parameter --encapsulateThemes wird der scopeName einer Micro Frontend-Anwendung durch die Umgebungsvariable JUTRO_APP_ID bestimmt.

Build-Informationen für Jutro-Apps erzeugen​

jutro generate:buildInfo

Der Befehl generate:buildInfo generiert Build-Informationen für die Anwendung und schreibt sie in eine JSON-Datei. Die generierte Datei kann als statisches Asset bereitgestellt werden.

Zu den Build-Informationen gehört Folgendes:

  1. Anwendungsname.
  2. Anwendungsversion.
  3. Jutro-Version.
  4. Commit-Hash.

Ein Beispiel für eine Build-Info-Datei sieht folgendermaßen aus:

{
"APPLICATION_NAME":"gw-templates-starter-standalone",
"APPLICATION_VERSION":"1.8.1-next.0",
"JUTRO_VERSION":"10.9.2",
"COMMIT_HASH":"b7cfb0f2"
}

Die CLI fordert Sie auf, die folgenden Informationen einzugeben, sofern diese nicht bereits in Form von Parametern bereitgestellt wurden:

  1. Ausgabeverzeichnis.
  2. Name der Ausgabedatei.
  3. Pfad zum Paketverzeichnis.

Der Befehl generate:buildInfo akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--outputDir,-dGibt das Anwendungsverzeichnis an, in das die Build-Info-Datei geschrieben werden soll.src/assets
--outputFile,-fGibt den Namen der Datei an, in die Build-Informationen geschrieben werden sollen. Achten Sie darauf, die Dateierweiterung nicht anzugeben.build
--packageDir,-pGibt das Verzeichnis an, in dem die Anwendungsdatei package.json enthalten ist.Aktuelles Arbeitsverzeichnis.
--buildValues,-bGibt benutzerdefinierte Buildwerte in der Form „NAME:WERT NAME2:WERT2 usw.“ an.Leere Zeichenkette "".
--helpGibt Details über den Befehl zum Terminal aus.Keine Argumente akzeptiert.
--clearCacheLöscht den Cache. Melden Sie sich hiermit als anderer Benutzer an.Keine Argumente akzeptiert.
--cliInfoZeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an.Keine Argumente akzeptiert.
--resetSetzt die Konfiguration auf die Standardeinstellung zurück und löscht den Cache.Keine Argumente akzeptiert.

Komponente generieren​

jutro generate:component

Mit dem Befehl generate:component wird eine einfache React-Komponente generiert. Die CLI validiert die Eingabe, generiert die Komponente, schließt die erforderlichen Abhängigkeiten ein und führt Linter aus, um die Codequalität sicherzustellen.

Wenn Sie mit diesem Befehl beispielsweise eine Komponente mit dem Namen Sample generieren, werden die folgenden Dateien generiert:

Sample/
├── index.ts Exports the component from Sample.tsx
├── Sample.messages.ts An example of a messages for internationalization.
├── Sample.module.scss CSS formatting rules tags with the ".sample" class.
└── Sample.tsx A react component that displays a div that contained the translated text from Sample.messages.

Mit diesem Befehl können Sie benutzerdefinierte Komponenten erstellen, indem Sie eine Grundlage schaffen, auf der die Komponente aufbauen kann. Aktualisieren Sie einfach die Datei Sample.tsx mit dem erforderlichen Code und verwenden Sie dann die Meldungen und CSS-Dateien, um übersetzbaren Text bzw. Formatierungen hinzuzufügen.

Die CLI fordert Sie auf, die folgenden Informationen einzugeben, sofern diese nicht bereits in Form von Parametern bereitgestellt wurden:

  1. Name der zu generierenden Komponente.
  2. Pfad der Ausgabedatei.

Der Befehl generate:component akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--name,-nGibt den Namen der generierten Komponente an.Kein Standardwert.
--path,-pGibt den Zielordnerpfad für die generierte Komponente an.Kein Standardwert.
--helpGibt Details über den Befehl zum Terminal aus.Keine Argumente akzeptiert.
--clearCacheLöscht den Cache. Melden Sie sich hiermit als anderer Benutzer an.Keine Argumente akzeptiert.
--cliInfoZeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an.Keine Argumente akzeptiert.
--resetSetzt die Konfiguration auf die Standardeinstellung zurück und löscht den Cache.Keine Argumente akzeptiert.

Digital SDK generieren​

Einzelheiten zum Erzeugen des Digital SDK mit der Jutro Platform CLI finden Sie unter SDK-Erzeugung und -Einrichtung

Erzeugen eines Jutro-Beispielformulars​

Mit diesem Befehl wird ein Beispielformular mit der abgekündigten Jutro-Komponente MetadataForm generiert. Der erstellte Code ist jedoch ungültig. Die Anwendung nach Innsbruck wird nicht empfohlen.

Komponente „Jutro-Assistent“ generieren​

Mit diesem Befehl wird eine Komponente „Jutro-Assistent“ mit abgekündigten Metadatenkomponenten generiert. Der erstellte Code ist jedoch ungültig. Die Anwendung nach Innsbruck wird nicht empfohlen.

Seite generieren​

Mit diesem Befehl wird eine Komponente „Seite“ mit abgekündigten Metadatenkomponenten generiert. Der erstellte Code ist jedoch ungültig. Die Anwendung nach Innsbruck wird nicht empfohlen.

Änderungsprotokoll generieren​

Dieser Befehl wird im Rahmen des Jutro-Entwicklungsprozesses verwendet und funktioniert nicht, wenn er von externen Benutzern verwendet wird.

Validate-Befehle​

Abhängigkeiten der Jutro-App validieren​

jutro validate:dependencies

Der Befehl validate:dependencies prüft die Abhängigkeiten für Ihr Projekt. Er vergleicht die Projektdatei package.json mit den Modulen, die Ihr Projekt verwendet, und stellt eine Liste aller nicht verwendeten, fehlenden, doppelten und nicht strikt versionierten Abhängigkeiten bereit.

Dieses Tool prüft außerdem auf invalidFiles und invalidDirs:

  • Die invalidFiles-Eigenschaft enthält Dateien mit Syntax- oder Berechtigungsfehlern. Die Fehlerdetails liefern den Wert. Die Suche speichert nur einen Fehler.
  • Die invalidDirs-Eigenschaft enthält Verzeichnisse mit Berechtigungsfehlern. Die Fehlerdetails liefern den Wert.

Sie müssen eine .depcheckrc.js-Datei im Stammverzeichnis des Projekts hinzufügen, in der die zu ignorierenden Module aufgeführt sind. Die Datei .depcheckrc.js hat folgende Struktur:

const options = {
ignoreMatches: [
'@jutro/auth',
'@jutro/cli-snapshot-tools',
'@jutro/cli-snapshots',
'@jutro/components',
'@jutro/platform',
'@jutro/prop-types',
'jest-extended',
'src',
'jest-teamcity-reporter',
'json5-jest',
'lerna',
'lint-staged',
'prop-types',
'ts-jest',
],
};

module.exports = { options };

Der Befehl validate:dependencies akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--globIgnorePatternsMuster von Dateien, die ignoriert werden sollen.'**/__mocks__/**', '**/__local_mocks__/**', '**/basic.metadata.schema.json', '**/dist/**', '**/node_modules/**', '**/src/generated/**'
--packageFileNamePatternName der Paketdatei.**/package.json

Ordnerstruktur der Jutro-App validieren​

jutro validate:folders

Der Befehl validate:folders validiert die erforderlichen Dateien und die Struktur der App anhand einer Standardstruktur der Jutro-App. Der Befehl protokolliert fehlende Dateien oder Ordner.

Mit diesem Befehl können Sie sicherstellen, dass Ihre App der von unseren CICD-Jobs erwarteten Struktur entspricht.

Der Befehl setzt voraus, dass Ihre App der folgenden Struktur entspricht:

.
├── src
│ ├── app
│ │ ├── App.{tsx,js}
│ │ ├── App.messages.{ts,js}
│ │ ├── App.module.scss
│ │ ├── App.test.{tsx,js}
│ ├── assets
│ │ ├── fonts
│ │ ├── icons
│ │ ├── images
│ │ ├── styles
│ │ └── manifest.json
│ ├── i18n
│ │ └── en.json
│ ├── config
│ │ └── config.json
├── .babelrc
├── .editorconfig
├── .env
├── .env.production
├── .depcheckrc.js
├── .eslint.js
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .nvmrc
├── .prettierignore
├── .prettierrc.js
├── .stylelintignore
├── .stylelintrc
├── commitlint.config.js
├── README.md
├── tsconfig.app.json
└── typings.d.ts
Warning: Wenn Ihre App nicht mit dieser Struktur übereinstimmt, ist es möglich, dass Teile davon aus den CICD-Validierungspipelines ausgeblendet werden.

Der Befehl validate:folders akzeptiert die folgenden Parameter:

|

Parameter
| Beschreibung | Standardwert | | --custom-packages | Änderung an benutzerdefinierter Paket-Validierungsstruktur; Einzelheiten finden Sie hier. | Keine Argumente akzeptiert. |

Parameter für benutzerdefinierte Pakete​

Sie können den --custom-packages-Parameter hinzufügen, um eine Struktur basierend auf Pipelines für Ihr benutzerdefiniertes Paket-Repository zu validieren. Eine gültige Struktur sieht wie folgt aus:

.
├── package.json
└── packages/
└── {package-name}/
├── package.json
└── src/
└── index.ts

Die CLI wird in den folgenden Situationen mit einem Fehler beendet:

  • Es gibt kein /packages-Verzeichnis im Stammverzeichnis.
  • Es gibt keine package.json-Datei im Stammverzeichnis.
  • Nicht alle /packages/{package-name}-Verzeichnisse enthalten eine package.json- und eine /src/index.js-Datei.

i18n-Übersetzungen in der Jutro-App validieren​

jutro validate:i18n

Der Befehl validate:i18n regeneriert die aktuelle Übersetzung in lang.json. Anschließend prüft er, ob die durch das --translationFileName-Flag angegebene Übersetzungsdatei (Standardwert ist en.json) mit der generierten Datei übereinstimmt.

Der Befehl validate:i18n akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--jsxFileNamePattern,-jDas Dateinamensmuster der JSX-Dateien.src/**/*.{ts,tsx,js,jsx}
--metadataFileNamePattern,-mDas Dateinamensmuster der JSON-Metadatendateien.src/**/*.{metadata,config}.json5
--translationOutputDir,-oVerzeichnis zum Speichern von Ausgabemeldungen, die Standardübersetzungen und extrahierte Übersetzungen kombinieren.src/i18n
--fileNameIgnorePatternDurch Kommas getrennte Liste von Dateinamensmustern, die ignoriert werden sollen.
**/__mocks__/**,**/__local_mocks__/**,**/basic.metadata.schema.json,**/dist/**,**/node_modules/**
--translationFileNameÜbersetzungsdatei, die mit lang.json abgeglichen werden soll.en.json
--helpGibt Details über den Befehl zum Terminal aus.Keine Argumente akzeptiert.
--clearCacheLöscht den Cache. Melden Sie sich hiermit als anderer Benutzer an.Keine Argumente akzeptiert.
--cliInfoZeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an.Keine Argumente akzeptiert.
--resetSetzt die Konfiguration auf die Standardeinstellung zurück und löscht den Cache.Keine Argumente akzeptiert.

Linters in der Jutro-App validieren​

jutro validate:linters

Der Befehl validate:linters führt eslint, stylelint und prettier in der App aus und benachrichtigt Sie, falls in der App Probleme auftreten. Der Befehl verwendet process.cwd, um die Linter über die Befehlszeile im Verzeichnis node_module/.bin auszuführen.

Note: Dieser Befehl verwendet keine Linting-Skripte, die möglicherweise in der Datei package.json vorhanden sind.
Warning: Zum Ausführen dieses Befehls müssen Sie die folgenden Pakete im Verzeichnis node_modules installieren:
  • prettier
  • eslint
  • stylelint

Der Befehl validate:linters akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--eslintFlagsÜberschreibt die Standardparameter für eslint"**/*.{ts,tsx,js,jsx}"
--eslintMetadataFlagsÜberschreibt die Standardparameter für eslint-Metadatenkomponenten"**/*.json5" --parser jsonc-eslint-parser --no-error-on-unmatched-pattern
--stylelintFlagsÜberschreibt die Standardparameter für stylelint"**/*.{scss, css}"
--prettierFlagsÜberschreibt die Standardparameter für prettier--check "${ALL_FILES_PATTERN}"1

1: ALL_FILES_PATTERN ist in @jutro/cli-common/ALL_FILES_PATTERN definiert. Der Wert ist {ts,tsx,js,jsx,json,json5,scss,css,html,mdx}.

Linter-Details​

eslint​

Dieser Linter wird für alle TypeScript- und JavaScript-Dateien gemäß der ESLint-Konfiguration Ihrer Anwendung (.eslintrc.js) ausgeführt, die bei richtiger Implementierung auf dem @jutro/eslint-config-Paket von Jutro basiert.

eslint metadata components​

Dieser Linter wird für alle Jutro-Metadatendateien (json5) gemäß der ESLint-Konfiguration () Ihrer Anwendung ausgeführt.eslintrc.js, die, wenn sie richtig implementiert wird, auf dem @jutro/eslint-config-Paket von Jutro basiert.

Warning: Das Überschreiben von eslintMetadataFlags wird nicht empfohlen, da Jutro ein bestimmtes Format voraussetzt.
stylelint​

Dieser Linter wird für alle scss- und css-Dateien gemäß der Stylelint-Konfiguration Ihrer Anwendung (.stylelintrc) ausgeführt, die bei richtiger Implementierung auf dem @jutro/stylelint-config-Paket von Jutro basiert.

prettier​

Dies führt den kompromisslosen prettier-Code-Formatierer für alle Dateien des Typs ts, tsx, js, jsx, json, json5, scss, css, html und mdx gemäß der Prettier-Konfiguration Ihrer App (.prettierrc) aus, die bei ordnungsgemäßer Implementierung auf der @jutro/build-tools/prettier-config/index-Datei von Jutro basiert.

Migrationspakete in der Jutro-App validieren​

Dieser Befehl wird im Rahmen des Jutro-Entwicklungsprozesses verwendet und funktioniert nicht, wenn er von externen Benutzern verwendet wird.

Tests in der Jutro-App validieren​

jutro validate:tests
Warning: Der Befehl validate:tests wurde jetzt abgekündigt. Verwenden Sie stattdessen den Befehl jutro app:tests, um die Unit-Tests der App auszuführen.

Lighthouse-Bericht für die Jutro-App generieren​

jutro validate:lighthouse

Mit dem Befehl validate:lighthouse wird ein Lighthouse-Bericht für Ihre Jutro-App erstellt.

Der Befehl validate:lighthouse akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--urlDie URL Ihrer Anwendunghttp://localhost:3001/
--configRelativer Pfad zu einer benutzerdefinierten KonfigurationsdateiEine .lighthouserc-Datei im Stammverzeichnis des Projekts.
--outputDurch Kommas getrennter Berichtsausgabemodus. Unterstützte Modi sind 'html', 'json' oder 'csv'html
--outputDirAusgabeverzeichnis für den BerichtAktuelles Verzeichnis.
--loginScriptPathPfad zu einem Puppeteer-Anmeldeskript.Kein Standardwert.
--usernameBenutzername für das Anmeldeskript.Kein Standardwert.
--passwordKennwort für das Anmeldeskript.Kein Standardwert.

Lighthouse-Konfiguration​

Der Pfad muss absolut oder relativ zum Stammverzeichnis des Projekts sein. Wenn der Parameter nicht angegeben wird, wird der Pfad standardmäßig auf eine .lighthouserc-Datei im Stammverzeichnis des Projekts gesetzt. Wenn diese Datei nicht gefunden wird, wird die Lighthouse-Standardkonfiguration verwendet.

Die Konfigurationsdatei kann eine JSON-, JS- oder YML-Datei sein.

Informationen zum Konfigurationsformat finden Sie hier: https://github.com/GoogleChrome/lighthouse/blob/master/docs/configuration.md

Puppeteer-Anmeldeskript​

Wenn in Ihrer App die Authentifizierung aktiviert ist, können Sie Ihr eigenes Puppeteer-Skript angeben, um die Anmeldung vor der Erzeugung des Berichts durchzuführen.

Das Anmeldeskript erhält die Browser-Instanz und, falls angegeben, die in den Befehlsargumenten übergebene Kombination aus Anmeldename und Kennwort.

Das Anmeldeskript muss in etwa so aussehen:

const page = await browser.newPage();
await page.goto('http://localhost:3001'); // Application URL matching the one you give from the command
const usernameInput = 'input[name="username"]';
const passwordInput = 'input[name="password"]';
await page.waitForSelector(usernameInput);
await page.type(usernameInput, username); // username from the -l in the command
await page.keyboard.press('Enter');
await page.waitForSelector(passwordInput);
await page.type(usernameInput, username);
await page.type(passwordInput, password); // password from the -p in the command
await page.keyboard.press('Enter');
Note: Sie können Variablen mit dem Namen browser, username oder password nicht umdefinieren, da sie über die CLI an das Skript übergeben werden.

Es gibt ein standardmäßiges Anmeldeskript für unsere Standard-Okta-Anmeldeseite, so dass Sie den Befehl ausführen können, indem Sie lediglich den Benutzernamen und das Kennwort übergeben:

jutro validate:lighthouse -u http://localhost:3001 -o ./lighthouse -l username -p password

Metadaten in der Jutro-App validieren​

jutro validate:metadata

Der Befehl validate:metadata validiert Ihre Metadatendateien anhand eines angegebenen Schemas und protokolliert die Validierungsergebnisse, einschließlich Fehler und Erfolgsmeldungen.

Der Befehl validate:metadata akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--fileNamePattern oder -fGibt das Muster für übereinstimmende Metadaten-Dateinamen an, die validiert werden sollen.src/**/*.{metadata,config}.json5
--schemaPath,-sGibt den Pfad zu der Schemadatei an, die für die Validierung von Metadatendateien verwendet wird.Kein Standardwert.
--helpGibt Details über den Befehl zum Terminal aus.Keine Argumente akzeptiert.
--clearCacheLöscht den Cache. Melden Sie sich hiermit als anderer Benutzer an.Keine Argumente akzeptiert.
--cliInfoZeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an.Keine Argumente akzeptiert.
--resetSetzt die Konfiguration auf die Standardeinstellung zurück und löscht den Cache.Keine Argumente akzeptiert.

App-Befehle​

Befehl zum Ausführen der Unit-Tests der App​

jutro app:tests

Der Befehl app:tests verwendet jest, um alle in Ihrer App definierten Unit-Tests auszuführen, und protokolliert die erfolgreichen und fehlgeschlagenen Tests.

Der Befehl app:tests akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--jestConfigPathPfad zu Ihrer Jest-Konfigurationsdatei.jest.config.js
--overridesPathPfad zu einer Überschreibungsdatei zum Überschreiben Ihrer Anwendungskonfigurationswerte für den Test.overrides.config.js
--verifyMit der Einstellung true wird die App-Installation vor dem Initiieren der Tests verifiziert.true

Darüber hinaus akzeptiert der Befehl alle Jest-CLI-Parameter. Weitere Informationen finden Sie in der Jest-Dokumentation.

Befehl zum Starten der App​

jutro app:start

Mit app:start wird Ihre App auf Ihrem lokalen Server gebündelt und gestartet. Sie kann entweder im development- oder im production-Modus ausgeführt werden. mode wird verwendet, um die globalen Variablen process.env.NODE_ENV und process.env.BABEL_ENV zu setzen und um React in den richtigen Modus zu versetzen. Sobald Ihre App gebündelt ist, wird ein neues Browserfenster geöffnet, in dem Ihre App ausgeführt wird.

Note: Dieser Befehl erfordert, dass react als Abhängigkeit in der Datei package.json vorhanden ist.

Mit diesem Befehl werden die Proxyeinstellungen aus package.json gelesen.

Der Befehl app:start akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--modeDie Umgebung, die erstellt und gestartet werden soll. Akzeptiert development oder production als Werte.development
--verifyÜberprüfen Sie die App-Installation, bevor Sie die App starten.true

Umgebungsvariablen für den Start der App​

Die folgenden Umgebungsvariablen werden verwendet, um Optionen für Ihre App festzulegen, wenn Sie sie mit diesem Befehl starten.

Umgebungsvariable
BeschreibungStandardwert
process.env.PORTZu verwendender Port3000
process.env.HOSTZu verwendender Host0.0.0.0
process.env.HTTPSVerwendung von http oder httpshttp
process.env.CIMit der Einstellung true wird die Anwendung in einer Continuous Integration- (CI-) Umgebung ausgeführtfalse

Befehl für App-Build​

jutro app:build

Der Befehl app:build erstellt den Anwendungs-Build mit Webpack und speichert ihn im dist-Ordner.

Die folgenden Webpack-spezifischen Plugins werden verwendet, um diesen Build zu erstellen:

PluginZweck
HtmlWebpack-PluginErzeugt eine index.html-Datei mit den korrekten <script>- und <link>-Tags und für gebündelte Assets.
MiniCssExtractPluginExtrahiert CSS in separate Dateien, anstatt es in JavaScript-Bundles einzuschließen.
TerserPluginMinimiert JavaScript, um die Bundle-Größe zu reduzieren.
CssMinimizerPluginMinimiert CSS-Dateien für eine optimierte Ausgabe.
ReactRefreshWebpackPluginAktiviert React Fast Refresh für eine bessere Entwicklungsumgebung.
WebpackManifestPluginGeneriert eine Manifestdatei, in der Quelldateinamen den Ausgabedateien zugeordnet werden.
InlineChunkHtmlPluginBindet kleine JS-Blöcke in den HTML-Code ein, um zusätzliche Netzwerkanforderungen zu vermeiden.
InterpolateHtmlPluginErsetzt Platzhalter in HTML (z. B. %PUBLIC_URL%) durch Umgebungsvariablen.
ModulNotFoundPlugin1Bietet klarere Fehlermeldungen, wenn ein Modul fehlt.
WorkboxWebpackPluginGeneriert einen Service Worker für Progressive Web Apps (PWAs).
ForkTsCheckerWebpackPluginFührt die TypeScript-Typprüfung in einem separaten Prozess aus, um die Build-Geschwindigkeit zu verbessern.

1 Dieses Plugin ist im react-dev-utils-Paket enthalten. Es gibt keine externe Dokumentation, die weitere Details zur Funktion enthält.

Das Ausgabeformat des Builds sieht wie folgt aus:

dist
├── asset-manifest.json
├── fonts <-- static folder also contains fonts
├── icons <-- static folder also contains icons
├── images
├── index.html
├── manifest.json
├── OidcServiceWorker.js <-- For OpenID
├── OidcTrustedDomains.js <-- For OpenID (Copy of packages/jutro-auth/OidcTrustedDomains.js)
├── static
│ ├── js
│ │ ├── 159.33502e27.chunk.js <-- minimized Javascript code
│ │ └── main.c4b7edb6.js
│ └── media
│ ├── MaterialIcons-Outlined.1fe2097e362248bbeafd.woff2
│ └── SourceSansVariable-Roman.ttf.f1ed926fb59922a29b83.woff2
└── styles
└── theme
├── styleOverrides.css
└── variableOverrides.css
Note: Config files, for example .gitignore and depcheckrc.js, will also be copied into the dist folder

Der Befehl app:build akzeptiert die folgenden Parameter:

Parameter
BeschreibungStandardwert
--mode, -mModus für den App-Build. Akzeptierte Werte sind „production“ oder „development“production
--showProgress,-sMarkierung zum Anzeigen des Build-Fortschrittsfalse
--no-showProgressErzwingt --showProgress auf falsefalse
--writeBuildStatsToFile,-wMarkierung zum Schreiben von Build-Statistiken in eine Dateifalse
--no-writeBuildStatsToFileErzwingt --writeBuildStatsToFile auf falsefalse