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
cli-platform-Befehle von Jutro müssen ausgehend vomStamm 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
| Befehl | Beschreibung | Link |
|---|---|---|
| jutro codemod:anwenden | Führt codemod-Skripte aus, um Ihren Anwendungscode zu aktualisieren. | Link zum entsprechenden Abschnitt |
Generierungsbefehle
| Befehl | Beschreibung | Link |
|---|---|---|
| jutro generate:i18n | Generiert Internationalisierungsübersetzungen für die Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro generate:themes | Generiert eine Theme-Definitionsdatei für die Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro generate:buildInfo | Generiert Build-Informationen für die Anwendung und schreibt sie in eine JSON-Datei. | Link zum entsprechenden Abschnitt |
| jutro generate:component | Erzeugt Basiskomponenten. | Link zum entsprechenden Abschnitt |
| jutro generate:digital-sdk | Erzeugt ein SDK für eine Jutro-Anwendung. | Link zum entsprechenden Abschnitt |
Validierungsbefehle
| Befehl | Beschreibung | Link |
|---|---|---|
| jutro validate:dependencies | Validiert die Abhängigkeiten der Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro validate:folders | Validiert die Ordnerstruktur der Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro validate:i18n | Validiert die Internationalisierungsübersetzungen in der Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro validate:linters | Validiert die Linter-Konfiguration in der Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro validate:migrations | Validiert die Migrationen in der Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro validate:tests | Validiert die in der Jutro-App definierten Tests. | Link zum entsprechenden Abschnitt |
| jutro validate:lighthouse | Generiert einen Lighthouse-Bericht in der Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro validate:metadata | Validiert Metadatendateien anhand eines angegebenen Schemas. | Link zum entsprechenden Abschnitt |
App-Befehle
| Befehl | Beschreibung | Link |
|---|---|---|
| jutro app:tests | Führt die Unit-Tests der App aus. | Link zum entsprechenden Abschnitt |
| jutro app:start | Bündelt und startet die Jutro-App. | Link zum entsprechenden Abschnitt |
| jutro app:build | Erstellt 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 | Beschreibung | Standardwert |
|---|---|---|
--name | Name eines auszuführenden Codemods. | Kein Standardwert. |
--codemodsModule | Speicherort 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 |
--projectPath | Pfad zu dem Verzeichnis, in dem die Codemods ausgeführt werden. Dabei kann es sich um einen Projektstamm oder ein Unterverzeichnis eines Projekts handeln. | . |
--tmpDir | Ein 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-Übersetzungsdateisrc/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.
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 | Beschreibung | Standardwert |
|---|---|---|
--metadataMessageOutputDir | Definiert das Ausgabeverzeichnis für die extrahierten Metadatenmeldungen. | i18n |
--jsxMessageOutputPath | Definiert das Ausgabeverzeichnis für die extrahierten JSX-Meldungen. | i18n/src/js-jsx-strings.json |
--messagesFileNamePattern | Definiert, wo die extrahierten Meldungen gespeichert werden. | i18n/src/**/*.json |
--mergeBizCompOutputDir | Definiert den Ausgabedateinamen der zusammengeführten Übersetzungen. | i18n/biz-comp-translations |
--languageOutputFileName | Definiert die Vorlage für die Sprachausgabedatei. | lang.json |
--pseudoType | Definiert den zu verwendenden Pseudotyp. Kann einer von 'expansion', 'sherlock' oder 'both' sein. | sherlock |
--pseudoOutputFileName | Definiert die Vorlage für den Ausgabedateinamen. | yy.json |
--editorProjectId | Definiert die Editor-Projekt-ID und aktiviert Editor-i18n-Übersetzungen. | ID in editorProject.json |
--editorMessageOutputPath | Definiert das Ausgabeverzeichnis für die extrahierten Editor-Meldungen. | i18n/editorTranslations.json |
--help | Gibt 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:
- Name des Themes.
- Der Ausdruck, der den Eingabepfad des Theme-Tokens angibt (der Standardpfad ist
src/tokens/**/*.json). - Der Name der Ausgabedatei.
- Der Pfad für die optionale Zuordnung von benutzerdefinierten Variablen zu Token.
- Der Pfad für die optionale benutzerdefinierte Transformation.
- Die Option, um ein weiteres Theme hinzuzufügen.
Der Befehl generate:themes akzeptiert die folgenden Parameter:
Parameter | Beschreibung | Standardwert |
|---|---|---|
--configPath,-c | Definiert den Pfad des Verzeichnisses, in dem sich die Datei .themesConfig.json befindet. | Aktuelles Arbeitsverzeichnis. |
--encapsulateThemes,-s | Wenn 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 |
--help | Gibt Details über den Befehl zum Terminal aus. | Keine Argumente akzeptiert. |
--clearCache | Löscht den Cache. Melden Sie sich hiermit als anderer Benutzer an. | Keine Argumente akzeptiert. |
--cliInfo | Zeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an. | Keine Argumente akzeptiert. |
--reset | Setzt die Konfiguration auf die Standardeinstellung zurück und löscht den Cache. | Keine Argumente akzeptiert. |
--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:
- Anwendungsname.
- Anwendungsversion.
- Jutro-Version.
- 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:
- Ausgabeverzeichnis.
- Name der Ausgabedatei.
- Pfad zum Paketverzeichnis.
Der Befehl generate:buildInfo akzeptiert die folgenden Parameter:
Parameter | Beschreibung | Standardwert |
|---|---|---|
--outputDir,-d | Gibt das Anwendungsverzeichnis an, in das die Build-Info-Datei geschrieben werden soll. | src/assets |
--outputFile,-f | Gibt den Namen der Datei an, in die Build-Informationen geschrieben werden sollen. Achten Sie darauf, die Dateierweiterung nicht anzugeben. | build |
--packageDir,-p | Gibt das Verzeichnis an, in dem die Anwendungsdatei package.json enthalten ist. | Aktuelles Arbeitsverzeichnis. |
--buildValues,-b | Gibt benutzerdefinierte Buildwerte in der Form „NAME:WERT NAME2:WERT2 usw.“ an. | Leere Zeichenkette "". |
--help | Gibt Details über den Befehl zum Terminal aus. | Keine Argumente akzeptiert. |
--clearCache | Löscht den Cache. Melden Sie sich hiermit als anderer Benutzer an. | Keine Argumente akzeptiert. |
--cliInfo | Zeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an. | Keine Argumente akzeptiert. |
--reset | Setzt 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:
- Name der zu generierenden Komponente.
- Pfad der Ausgabedatei.
Der Befehl generate:component akzeptiert die folgenden Parameter:
Parameter | Beschreibung | Standardwert |
|---|---|---|
--name,-n | Gibt den Namen der generierten Komponente an. | Kein Standardwert. |
--path,-p | Gibt den Zielordnerpfad für die generierte Komponente an. | Kein Standardwert. |
--help | Gibt Details über den Befehl zum Terminal aus. | Keine Argumente akzeptiert. |
--clearCache | Löscht den Cache. Melden Sie sich hiermit als anderer Benutzer an. | Keine Argumente akzeptiert. |
--cliInfo | Zeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an. | Keine Argumente akzeptiert. |
--reset | Setzt 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 | Beschreibung | Standardwert |
|---|---|---|
--globIgnorePatterns | Muster von Dateien, die ignoriert werden sollen. | '**/__mocks__/**', '**/__local_mocks__/**', '**/basic.metadata.schema.json', '**/dist/**', '**/node_modules/**', '**/src/generated/**' |
--packageFileNamePattern | Name 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
Der Befehl validate:folders akzeptiert die folgenden Parameter:
|
--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 einepackage.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 | Beschreibung | Standardwert |
|---|---|---|
--jsxFileNamePattern,-j | Das Dateinamensmuster der JSX-Dateien. | src/**/*.{ts,tsx,js,jsx} |
--metadataFileNamePattern,-m | Das Dateinamensmuster der JSON-Metadatendateien. | src/**/*.{metadata,config}.json5 |
--translationOutputDir,-o | Verzeichnis zum Speichern von Ausgabemeldungen, die Standardübersetzungen und extrahierte Übersetzungen kombinieren. | src/i18n |
--fileNameIgnorePattern | Durch 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 |
--help | Gibt Details über den Befehl zum Terminal aus. | Keine Argumente akzeptiert. |
--clearCache | Löscht den Cache. Melden Sie sich hiermit als anderer Benutzer an. | Keine Argumente akzeptiert. |
--cliInfo | Zeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an. | Keine Argumente akzeptiert. |
--reset | Setzt 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.
package.json vorhanden sind.node_modules installieren:prettiereslintstylelint
Der Befehl validate:linters akzeptiert die folgenden Parameter:
Parameter | Beschreibung | Standardwert |
|---|---|---|
--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.
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
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 | Beschreibung | Standardwert |
|---|---|---|
--url | Die URL Ihrer Anwendung | http://localhost:3001/ |
--config | Relativer Pfad zu einer benutzerdefinierten Konfigurationsdatei | Eine .lighthouserc-Datei im Stammverzeichnis des Projekts. |
--output | Durch Kommas getrennter Berichtsausgabemodus. Unterstützte Modi sind 'html', 'json' oder 'csv' | html |
--outputDir | Ausgabeverzeichnis für den Bericht | Aktuelles Verzeichnis. |
--loginScriptPath | Pfad zu einem Puppeteer-Anmeldeskript. | Kein Standardwert. |
--username | Benutzername für das Anmeldeskript. | Kein Standardwert. |
--password | Kennwort 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');
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 | Beschreibung | Standardwert |
|---|---|---|
--fileNamePattern oder -f | Gibt das Muster für übereinstimmende Metadaten-Dateinamen an, die validiert werden sollen. | src/**/*.{metadata,config}.json5 |
--schemaPath,-s | Gibt den Pfad zu der Schemadatei an, die für die Validierung von Metadatendateien verwendet wird. | Kein Standardwert. |
--help | Gibt Details über den Befehl zum Terminal aus. | Keine Argumente akzeptiert. |
--clearCache | Löscht den Cache. Melden Sie sich hiermit als anderer Benutzer an. | Keine Argumente akzeptiert. |
--cliInfo | Zeigt Informationen über die Konfiguration und den Speicherort der Cache-Datei an. | Keine Argumente akzeptiert. |
--reset | Setzt 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 | Beschreibung | Standardwert |
|---|---|---|
--jestConfigPath | Pfad zu Ihrer Jest-Konfigurationsdatei. | jest.config.js |
--overridesPath | Pfad zu einer Überschreibungsdatei zum Überschreiben Ihrer Anwendungskonfigurationswerte für den Test. | overrides.config.js |
--verify | Mit 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.
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 | Beschreibung | Standardwert |
|---|---|---|
--mode | Die 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 | Beschreibung | Standardwert |
|---|---|---|
process.env.PORT | Zu verwendender Port | 3000 |
process.env.HOST | Zu verwendender Host | 0.0.0.0 |
process.env.HTTPS | Verwendung von http oder https | http |
process.env.CI | Mit der Einstellung true wird die Anwendung in einer Continuous Integration- (CI-) Umgebung ausgeführt | false |
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:
| Plugin | Zweck |
|---|---|
| HtmlWebpack-Plugin | Erzeugt eine index.html-Datei mit den korrekten <script>- und <link>-Tags und für gebündelte Assets. |
| MiniCssExtractPlugin | Extrahiert CSS in separate Dateien, anstatt es in JavaScript-Bundles einzuschließen. |
| TerserPlugin | Minimiert JavaScript, um die Bundle-Größe zu reduzieren. |
| CssMinimizerPlugin | Minimiert CSS-Dateien für eine optimierte Ausgabe. |
| ReactRefreshWebpackPlugin | Aktiviert React Fast Refresh für eine bessere Entwicklungsumgebung. |
| WebpackManifestPlugin | Generiert eine Manifestdatei, in der Quelldateinamen den Ausgabedateien zugeordnet werden. |
| InlineChunkHtmlPlugin | Bindet kleine JS-Blöcke in den HTML-Code ein, um zusätzliche Netzwerkanforderungen zu vermeiden. |
| InterpolateHtmlPlugin | Ersetzt Platzhalter in HTML (z. B. %PUBLIC_URL%) durch Umgebungsvariablen. |
| ModulNotFoundPlugin1 | Bietet klarere Fehlermeldungen, wenn ein Modul fehlt. |
| WorkboxWebpackPlugin | Generiert einen Service Worker für Progressive Web Apps (PWAs). |
| ForkTsCheckerWebpackPlugin | Fü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
.gitignore and depcheckrc.js, will also be copied into the dist folderDer Befehl app:build akzeptiert die folgenden Parameter:
Parameter | Beschreibung | Standardwert |
|---|---|---|
--mode, -m | Modus für den App-Build. Akzeptierte Werte sind „production“ oder „development“ | production |
--showProgress,-s | Markierung zum Anzeigen des Build-Fortschritts | false |
--no-showProgress | Erzwingt --showProgress auf false | false |
--writeBuildStatsToFile,-w | Markierung zum Schreiben von Build-Statistiken in eine Datei | false |
--no-writeBuildStatsToFile | Erzwingt --writeBuildStatsToFile auf false | false |