Beheben von AEM Cloud Manager-Bereitstellungsfehlern beim Test der benutzerdefinierten Benutzeroberfläche aufgrund der ESM/CommonJS-Kompatibilität

Dieser Artikel beschreibt die Schritte zum Beheben von Bereitstellungs-Pipeline-Fehlern während des benutzerdefinierten UI-Testschritts in Adobe Experience Manager (AEM) Cloud Manager, die durch Kompatibilitätsprobleme zwischen ESM-Modulen (ESM) und CommonJS-Abhängigkeiten verursacht werden.

Beschreibung description

Umgebung

Adobe Experience Manager as a Cloud Service (alle Versionen)

Problem/Symptome

  • Die Bereitstellungs-Pipeline schlägt während des Schritts zum Testen der benutzerdefinierten Benutzeroberfläche in Cloud Manager fehl.
  • Fehlerprotokolle zeigen Meldungen wie: ERR_REQUIRE_ESM: Muss den Import verwenden, um ES-Modul zu laden: @wdio/logger.
  • Zusätzliche Fehler treten auf, wenn reine ESM-Reporter (z. B. wdio-html-nice-reporter) mit require() in Konfigurationsdateien geladen werden, was zu ähnlichen ERR_REQUIRE_ESM-Fehlern führt.
  • Indizierungsfehler können auch auftreten, wenn die Zielumgebung während der Bereitstellung nicht vollständig aktiv ist.

Ursache

Die Fehler sind auf Inkompatibilitäten zwischen CommonJS- und ES-Modulabhängigkeiten in der benutzerdefinierten Testkonfiguration der Benutzeroberfläche zurückzuführen. Außerdem kann die Bereitstellung fehlschlagen, wenn die Zielumgebung nicht aktiv ist.

Lösung resolution

Gehen Sie wie folgt vor, um das Problem zu beheben:

  1. Überprüfen Sie die Abhängigkeiten für benutzerdefinierte Benutzeroberflächentests, insbesondere die für WebdriverIO (z. B. @wdio/logger und wdio-html-nice-reporter).

  2. Aktualisieren Sie Importanweisungen für die ESM-Kompatibilität:

    • Entfernen Sie alle require('@wdio/logger') Importe aus CommonJS-Dateien (z. B. launcher.js und comparisonstrategy.js).
    • Ersetzen Sie diese Importe durch einfache Protokollierungsanweisungen oder verwenden Sie bei Bedarf dynamische import().
  3. Reporter-Konfiguration anpassen:

    • Wenn Sie reine ESM-Reporter verwenden (z. B. wdio-html-nice-reporter), stellen Sie sicher, dass diese mit import Syntax geladen werden, anstatt in Konfigurationsdateien (z. B. wdio.conf.commons.js) require() zu werden.
    • Refaktorieren Sie Konfigurationsdateien, sodass sie ESM-kompatibel sind, falls dies von Ihrem Abhängigkeitssatz benötigt wird, oder entfernen Sie nur ESM-Reporter aus dem Reporter-Array für die Cloud Manager-Ausführung.
  4. Stellen Sie sicher, dass die Zielumgebung vollständig aktiv ist, bevor Sie die Bereitstellungs-Pipeline ausführen, um Indizierungsfehler zu vermeiden. Wenn die Umgebung zuvor in den Ruhezustand versetzt wurde, aktivieren Sie sie und führen Sie die Pipeline erneut aus.

  5. Führen Sie die Bereitstellungs-Pipeline erneut aus und überwachen Sie auf Fehler.

  6. Vergewissern Sie sich, dass der Schritt „Benutzerdefinierter Benutzeroberflächentest“ erfolgreich abgeschlossen wurde und dass die Bereitstellung ohne Modulkompatibilitätsfehler fortgesetzt wird.

recommendation-more-help
experience-cloud-kcs-help-kbarticles