switched to the public shared packages

This commit is contained in:
2026-06-11 16:40:30 +02:00
parent fec27b93f3
commit b6e9ddbb0e
9 changed files with 103 additions and 135 deletions

View File

@@ -2,7 +2,7 @@
> [English version](README.md)
Beispielprojekt, das zeigt, wie ein **PHX-ERP-Frontend-Plugin** als Angular-Web-Component mit `@phx/shared` und `@phx/shared-ui` erstellt wird.
Beispielprojekt, das zeigt, wie ein **PHX-ERP-Frontend-Plugin** als Angular-Web-Component mit `@phx-erp/shared` und `@phx-erp/shared-ui` erstellt wird.
Dieselbe Codebasis unterstützt zwei Arbeitsweisen:
@@ -67,7 +67,6 @@ Ein PHX-Frontend-Plugin ist eine Angular-Anwendung, die als **Custom Element** (
- [Node.js](https://nodejs.org/) (LTS empfohlen)
- [Yarn v4](https://yarnpkg.com/getting-started/install)
- Eine laufende PHX-Instanz (für Plugin-Host-Tests und GraphQL-Schema/Codegen)
- Ein **npm-Zugangstoken** mit Lesezugriff auf PHXGMBH-Pakete — anfordern über Ihren PHX-Partner
Für die lokale eigenständige Entwicklung benötigen Sie außerdem eines der folgenden:
@@ -78,15 +77,13 @@ Für die lokale eigenständige Entwicklung benötigen Sie außerdem eines der fo
## Schnellstart
1. **Yarn konfigurieren**, um auf die PHX-npm-Registry zuzugreifen (siehe [PHX-Bibliotheken](#5-phx-bibliotheken)). `.yarnrc.yml` nicht committen.
2. **Abhängigkeiten installieren:**
1. **Abhängigkeiten installieren:**
```bash
yarn install
```
3. **Lokale Development-Umgebung anlegen** (optional, für den Standalone-Modus):
2. **Lokale Development-Umgebung anlegen** (optional, für den Standalone-Modus):
```bash
cp src/environments/environment.example.ts src/environments/environment.development.ts
@@ -94,13 +91,13 @@ Für die lokale eigenständige Entwicklung benötigen Sie außerdem eines der fo
Passen Sie `apiUrl`, `wsUrl` und optional `apiKey` in dieser Datei an. Die Datei ist gitignored.
4. **GraphQL-Typen generieren** (erfordert PHX Admin API unter der in `codegen.ts` konfigurierten Schema-URL):
3. **GraphQL-Typen generieren** (erfordert PHX Admin API unter der in `codegen.ts` konfigurierten Schema-URL):
```bash
yarn codegen
```
5. **In einem der Entwicklungsmodi** unten starten.
4. **In einem der Entwicklungsmodi** unten starten.
---
@@ -367,24 +364,12 @@ Fügen Sie `fileReplacements` zur **Development**-Build-Konfiguration in `angula
### 5. PHX-Bibliotheken
`@phx/shared` und `@phx/shared-ui` werden in der PHXGMBH-npm-Registry veröffentlicht.
`@phx-erp/shared` und `@phx-erp/shared-ui` werden in der öffentlichen npm-Registry veröffentlicht.
Erstellen Sie `.yarnrc.yml` im Projektroot (oder bearbeiten Sie `~/.yarnrc.yml` für eine globale Konfiguration):
```yml
nodeLinker: node-modules
npmScopes:
phx:
npmRegistryServer: "https://gitea.phx-erp.de/api/packages/PHXGMBH/npm/"
npmAuthToken: "*YOUR-TOKEN*"
```
> **Wichtig:** Nehmen Sie `.yarnrc.yml` in `.gitignore` auf, wenn sie Ihren Token enthält.
Installieren Sie anschließend die Bibliotheken:
Installieren Sie die Bibliotheken:
```bash
yarn add @phx/shared @phx/shared-ui
yarn add @phx-erp/shared @phx-erp/shared-ui
```
### 6. Plugin-Setup
@@ -396,7 +381,7 @@ Fügen Sie `providePhoenixPluginWithPrimeNG` in `src/app/app.config.ts` hinzu:
```ts
import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { providePhoenixPluginWithPrimeNG } from '@phx/shared-ui';
import { providePhoenixPluginWithPrimeNG } from '@phx-erp/shared-ui';
import { routes } from './app.routes';
export const appConfig: ApplicationConfig = {
@@ -424,7 +409,7 @@ Erstellen Sie `src/app/services/phoenix-host-bridge.service.ts`:
```ts
import { Injectable, Injector, signal } from '@angular/core';
import type { IPluginServices } from '@phx/shared-ui';
import type { IPluginServices } from '@phx-erp/shared-ui';
@Injectable({ providedIn: 'root' })
export class PhoenixHostBridgeService {
@@ -459,7 +444,7 @@ Ihre Root-Komponente empfängt `pluginServices` und `hostInjector` von PHX und l
import { Component, effect, inject, Injector, input } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { PhoenixHostBridgeService } from './services/phoenix-host-bridge.service';
import { IPluginServices, syncPhoenixHostInjector } from '@phx/shared-ui';
import { IPluginServices, syncPhoenixHostInjector } from '@phx-erp/shared-ui';
@Component({
selector: 'app-root',
@@ -492,7 +477,7 @@ Registrieren Sie in `src/main.ts` Ihr Plugin als Custom Element (ersetzen Sie `*
```ts
import { appConfig } from './app/app.config';
import { App } from './app/app';
import { bootstrapPhoenixPluginCustomElement } from '@phx/shared-ui';
import { bootstrapPhoenixPluginCustomElement } from '@phx-erp/shared-ui';
import { environment } from './environments/environment';
bootstrapPhoenixPluginCustomElement(App, '*YOUR-TAG*', appConfig).then((app) => {
@@ -764,7 +749,7 @@ Dieses Repository führt zusätzlich `copy-latest.mjs` parallel zu `build` aus,
|---------|-----------|
| PHX zeigt eine alte Plugin-Version | Hard-Refresh; prüfen, ob `serve.json` `Cache-Control: no-store` für JS setzt; `yarn run plugin` neu starten |
| `401` / GraphQL-Auth-Fehler im Standalone-Modus | `apiKey` in `environment.development.ts` setzen oder über `/login` anmelden |
| `yarn add @phx/shared` schlägt fehl | Token in `.yarnrc.yml` prüfen; Ihren PHX-Partner kontaktieren |
| `yarn add @phx-erp/shared` schlägt fehl | Netzwerkzugriff auf die öffentliche npm-Registry prüfen; `yarn install` erneut ausführen |
| Routing in PHX funktioniert nicht | Routen-Segmente zu `stripTrailingSegments` in `providePhoenixPluginWithPrimeNG` hinzufügen |
| Tailwind-Klassen fehlen in einer Komponente | `@tailwind`-Direktiven in den `styles` der Komponente ergänzen |
| `yarn codegen` schlägt fehl | PHX muss laufen und die Schema-URL in `codegen.ts` erreichbar sein |
@@ -774,4 +759,4 @@ Dieses Repository führt zusätzlich `copy-latest.mjs` parallel zu `build` aus,
## Support
Bei Registry-Zugang, Integrationsfragen oder PHX-spezifischen APIs wenden Sie sich an Ihren PHX-Partner.
Bei Integrationsfragen oder PHX-spezifischen APIs wenden Sie sich an Ihren PHX-Partner.