Résoudre les échecs de déploiement d’AEM Cloud Manager lors du test de l’interface utilisateur personnalisée en raison de la compatibilité ESM/CommonJS
Cet article décrit les étapes à suivre pour résoudre les échecs du pipeline de déploiement lors de l’étape de test de l’interface utilisateur personnalisée dans Adobe Experience Manager (AEM) Cloud Manager, qui sont causés par des problèmes de compatibilité entre les modules ES (ESM) et les dépendances CommonJS.
Description description
Environnement
Adobe Experience Manager as a Cloud Service (toutes versions)
Problème/Symptômes
- Le pipeline de déploiement échoue lors de l’étape de test de l’interface utilisateur personnalisée dans Cloud Manager.
- Les journaux d’erreurs affichent des messages tels que : ERR_REQUIRE_ESM: Must use import to load ES Module: @wdio/logger.
- D’autres erreurs se produisent lorsque des rapports ESM uniquement (par exemple,
wdio-html-nice-reporter) sont chargés à l’aide derequire()dans les fichiers de configuration, ce qui entraîne des erreurs ERR_REQUIRE_ESM similaires. - Les échecs d’indexation peuvent également se produire si l’environnement cible n’est pas entièrement actif pendant le déploiement.
Cause
Les échecs sont dus à des incompatibilités entre les dépendances du module CommonJS et ES dans la configuration du test de l’interface utilisateur personnalisée. En outre, le déploiement peut échouer si l’environnement cible n’est pas actif.
Résolution resolution
Suivez les étapes ci-dessous pour résoudre le problème :
-
Passez en revue vos dépendances de test d’interface utilisateur personnalisées, en particulier celles liées à WebdriverIO (telles que
@wdio/loggeretwdio-html-nice-reporter). -
Mettez à jour les instructions d’importation pour la compatibilité ESM :
- Supprimez toutes les importations de
require('@wdio/logger')des fichiers CommonJS (tels quelauncher.jsetcomparisonstrategy.js). - Remplacez ces imports par de simples instructions de journalisation ou utilisez des
import()dynamiques si nécessaire.
- Supprimez toutes les importations de
-
Ajustez la configuration du rapporteur :
- Si vous utilisez des reporters ESM uniquement (tels que
wdio-html-nice-reporter), assurez-vous qu’ils sont chargés en utilisant la syntaxeimportplutôt querequire()dans les fichiers de configuration (tels quewdio.conf.commons.js). - Refactorisez les fichiers de configuration pour qu’ils soient compatibles ESM si votre jeu de dépendances l’exige, ou supprimez les reporters ESM uniquement du tableau de reporters pour l’exécution de Cloud Manager.
- Si vous utilisez des reporters ESM uniquement (tels que
-
Assurez-vous que l’environnement cible est entièrement actif avant d’exécuter le pipeline de déploiement pour éviter les échecs d’indexation. Si l’environnement a été précédemment mis en veille, activez-le et réexécutez le pipeline.
-
Réexécutez le pipeline de déploiement et recherchez les erreurs.
-
Vérifiez que l’étape de test de l’interface utilisateur personnalisée s’est terminée correctement et que le déploiement se poursuit sans erreurs de compatibilité de module.