Supporto delle versioni Node.js e npm e compatibilità per le build front-end di AEM
I moduli front-end di AEM (ad esempio ui.frontend con React o Webpack) richiedono una versione di Node.js compatibile con l’ambiente di build AEM e l’utilizzo di una versione non supportata o non corrispondente causa errori o incertezze di build della pipeline di Cloud Manager durante l’aggiornamento. Per risolvere il problema, identifica il modello di distribuzione, conferma che le versioni di Node.js e npm di destinazione siano supportate e imposta la versione corretta nella configurazione della pipeline.
Descrizione description
Ambiente
- Adobe Experience Manager as a Cloud Service
- AEM Managed Services (AEM 6.5)
- Adobe Experience Manager 6.5 (locale)
Problema/Sintomi
- Le build della pipeline di Cloud Manager non riescono quando si utilizza una versione di Node.js non supportata (ad esempio, utilizzando Node 20 prima dell’aggiunta del supporto).
- Incertezza su quale versione npm è inclusa con una versione di Node.js supportata (ad esempio, npm 10.8.2 con Nodo 18 o npm 9.6.7 con Nodo 23.11.1).
Causa principale
Diversi modelli di distribuzione di AEM gestiscono Node.js in modo diverso. In AEM as a Cloud Service, Node.js fa parte del contenitore di build Cloud Manager con versioni convalidate. In AEM 6.5 Managed Services o on-premise, Node.js è puramente una dipendenza build-time che gestisci e non esiste una matrice di supporto ufficiale. Il tentativo di utilizzare versioni non ancora rilasciate in Cloud Manager o versioni npm non corrispondenti può causare incompatibilità di build.
Passaggi per riprodurre l’errore
- Identifica il modello di implementazione: AEM as a Cloud Service, AEM 6.5 Managed Services o AEM 6.5 on-premise.
- Per AEM as a Cloud Service, esegui
node -venpm -vin un passaggio di build della pipeline e controlla le versioni stampate nei registri di build. - Confronta la versione di Node.js di destinazione con l’elenco delle versioni ufficialmente supportate.
Risoluzione resolution
Per risolvere il problema, identifica il modello di distribuzione di AEM, quindi segui i passaggi per il tuo ambiente:
Per AEM as a Cloud Service
- Verifica che la versione di Node.js di destinazione sia supportata. Secondo la documentazione ufficiale, le versioni principali supportate sono 12, 14, 16, 18, 20, 22 e 23. Verifica incrociata con l’elenco supportato da Experience League.
- Conferma la versione npm in bundle con la versione Node.js. Esegui
node -venpm -vin un passaggio di build della pipeline Cloud Manager e rivedi i registri (ad esempio, bundle Node 18 npm 10.8.2 e bundle Node 23.11.1 npm 9.6.7). Se npm riporta un 404 per la sua versione, che riflette le differenze del registro pubblico, quindi confermare la versione effettiva nel bundle. - Configura la versione di Node.js nella pipeline. In Cloud Manager, vai a Ambienti
>Configurazione>Variabili di ambiente e impostaCM_CUSTOM_VAR_NODE_VERSION(oNODE_VERSIONse applicabile). Eseguire nuovamente la pipeline e confermare la versione del nodo nei registri, assicurandosi che non siano definite versioni in conflitto inpom.xmlo nello script di compilazione. - Per le pipeline full stack, imposta
NODE_VERSIONsu 20 per utilizzare Node.js 20 e convalida le dipendenze del progetto per la compatibilità con Node 20. - Utilizza Node.js 22 o 23 solo in presenza di supporto documentato. Se una build front-end non riesce, ripristina il nodo 18 o 20 e verifica la compatibilità della dipendenza.
- Convalida la compatibilità delle dipendenze di terze parti testando le build con la nuova versione di Node.js e confermando l’assenza di regressioni front-end. Per problemi specifici del fornitore, contatta direttamente il fornitore di terze parti, poiché Adobe non può fornire i relativi dettagli di compatibilità.
- Confermare la correzione eseguendo
node -venpm -vnei registri di compilazione e attivando un’esecuzione completa della pipeline per verificare che la compilazioneui.frontendabbia esito positivo senza errori di mancata corrispondenza delle versioni. - Se le build non riescono nonostante la configurazione corretta, contatta il supporto Adobe con i registri della pipeline,
pom.xml,package.jsone l’elenco delle variabili di ambiente Cloud Manager.
Per AEM 6.5 (Managed Services e on-premise)
- Nota che non esiste una matrice ufficiale di supporto Node.js per AEM 6.5. Node.js è gestito dal cliente, utilizzato solo per la creazione di strumenti in fase di generazione e scollegato dal runtime di AEM.
- Durante l’aggiornamento di Node.js e npm, mantieni coerenti
package.jsonepom.xmlin modo che le build locali e CI siano allineate (ad esempio, l’aggiornamento di Node 12.22.7 a 16.17.0 e npm 6.14.0 a 8.15.0). - Confermare le versioni eseguendo
node -venpm -vlocalmente e in CI, quindi verificare che la build front-end venga completata senza errori di mancata corrispondenza delle versioni. - In caso di confusione o problemi di compilazione, contatta il supporto Adobe con i dettagli dello script di compilazione,
pom.xmlepackage.json.