AEM avec NextJs RemoteSPA : un guide d’intégration complet

Bienvenue dans notre guide complet, dans lequel nous éclairons le processus de mise à jour d’une application à page unique (SPA) distante – fonctionnant indépendamment d’AEM – pour consommer et diffuser en toute transparence du contenu créé dans Adobe Experience Manager (AEM). Tout au long de ce blog, nous nous concentrons sur la configuration locale d’une instance AEM et d’une application Next.js, ainsi que sur la liaison nécessaire pour les faire fonctionner ensemble harmonieusement. Nous créerons également un composant de démonstration et le déposerons sur la page d’accueil, vous exposant ainsi à travailler sur Remote SPA avec AEM.
Étapes pour configurer une instance AEM locale avec l’application Nextjs
Étape 1 : configurer une instance AEM locale
- Téléchargez le dernier SDK AEM
- Décompressez le SDK AEM dans ~/aem-sdk
- Renommez le fichier Jar de démarrage rapide du SDK AEM en « aem-author-p4502.jar ».
- Dans Terminal, exécutez la commande suivante
java -jar aem-author-p4502.jar
En utilisant la commande ci-dessus, l’instance AEM est créée en mode Auteur et se lance automatiquement sur http://localhost:4502. Connectez-vous ensuite en utilisant les identifiants suivants :
Nom d’utilisateur : administrateur
Mot de passe : administrateur
Étape 2 : Téléchargez et installez le package du site Wknd
- Téléchargez la dernière version de aem-guides-wknd.all.xxxzip
- Aller à http://localhost:4502/crx/packmgr.
- Téléchargez le aem-guides-wknd.all.xxxzip téléchargé à l’étape 1
- Appuyez sur le bouton Installer pour l’entrée aem-guides-wknd.all-xxxzip. (Cette étape est utilisée uniquement à des fins de contenu.)
Étape 3 : Créer un projet AEM à l’aide de l’archétype AEM
Ici, nous utilisons AEM Archetype version 41 et supprimons le module frontend car nous n’avons plus besoin du module frontend car nous utilisons RemoteSPA.
Nous pouvons modifier groupId, appId et le titre de l’application selon les besoins.
mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate \ -D archetypeGroupId=com.adobe.aem \ -D archetypeArtifactId=aem-project-archetype \ -D archetypeVersion=41\ -D aemVersion=cloud \ -D appTitle="WKND App" \ -D appId="wknd-app" \ -D groupId="com.adobe.aem.guides.wkndapp" \ -D frontendModule="decoupled"
Étape 4 : Modifications dans la base de code
Quelques ajustements sont requis pour la compatibilité d’AEM SPA Editor avec les SPA Remote Next.js.
Définir la page AEM comme modèle SPA distant Next.js : ouvrir ui.content/src/main/content/jcr_root/content/wknd-app/us/en/home/.content.xml et mettez-le à jour comme ci-dessous.
<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" jcr:primaryType="cq:Page"> <jcr:content cq:template="/conf/wknd-app/settings/wcm/templates/spa-next-remote-page" jcr:primaryType="cq:PageContent" jcr:title="WKND App Home Page" sling:resourceType="wknd-app/components/remotepagenext"> <root jcr:primaryType="nt:unstructured" sling:resourceType="wcm/foundation/components/responsivegrid"> <responsivegrid jcr:primaryType="nt:unstructured" sling:resourceType="wcm/foundation/components/responsivegrid"> <text jcr:primaryType="nt:unstructured" sling:resourceType="wknd-app/components/text" text="<p>Hello World!</p>" textIsRich="true"> <cq:responsive jcr:primaryType="nt:unstructured"/> </text> </responsivegrid> </root> </jcr:content> </jcr:root>
Enfin, déployez le projet AEM sur le SDK AEM à l’aide de la commande maven ci-dessous.
mvn clean install -PautoInstallSinglePackage
Étape 5 : Configurer la page AEM racine
- Connectez-vous à l’auteur AEM
- Accédez à Sites > Application WKND > nous > fr
- Sélectionnez la page d’accueil de l’application WKND et appuyez sur Propriétés.
- Accédez à l’onglet SPA
- Remplissez la configuration du SPA distant : http://localhost:3000
- Appuyez sur Enregistrer et fermer
Étape 6 : Cloner l’application Next.js
Clonez le projet sur votre ordinateur local à l’aide de la commande ci-dessous.
git clone https://github.com/adobe/aem-headless-app-templates mkdir aem-nextjs-app cp -r aem-headless-app-templates/nextjs-remotespa/* aem-nextjs-app/ cd aem-nextjs-app/
Étape 7 : Configurer l’application Next.js
- Installer la version du nœud 16.x
- Aller à l’endroit où aem-nextjs-app est présent
- Exécuter la commande – installation npm
Créez 2 fichiers sous le répertoire aem-nextjs-app/ nommé en tant que « .env.développement» et « .env.production» et mettez-le à jour comme ci-dessous.
NEXT_PUBLIC_URL=http://localhost:3000 NEXT_PUBLIC_AEM_HOST=http://localhost:4502 NEXT_GRAPHQL_ENDPOINT=/content/graphql/global/endpoint.json NEXT_PUBLIC_AEM_SITE=wknd-app NEXT_PUBLIC_AEM_PATH=/content/wknd-app/us/en/home NEXT_PUBLIC_AEM_ROOT=/content/wknd-app/us/en
Exécutez ensuite la commande build
npm run build
Ensuite, vous pouvez démarrer l’application en mode développement ou en mode production en utilisant la commande ci-dessous.
npm run dev
Ou
npm run start
Étape 8 : Votre instance est désormais prête pour le développement
Vous pouvez créer un nouveau composant dans AEM et React et le restituer sur Page.
Étapes pour créer le composant dans l’application Next.js et le lier au composant AEM
Étape 1 : Créer un composant AEM
Créez DemoComponent dans ui.apps comme indiqué ci-dessous. Il n’est pas nécessaire d’avoir un fichier DemoComponent.html.
Créez un modèle DemoComponent dans le module principal comme indiqué ci-dessous.
Mettre à jour le fichier avec le contenu indiqué dans DemoComponentModel.java et DemoComponentModelImpl.java.
Ici, Sling Exporter est utilisé pour eExportation de modèles Sling en tant qu’objets JSON destinés à être consommés par des consommateurs Web programmatiques tels que d’autres services Web et applications JavaScript.
Étape 2 : Créer un composant dans l’application NextJs
Créez un fichier sous le répertoire – aem-nextjs-app/components/ nommé AEMDemoComponent.jsx (Télécharger AEMDemoComponent.jsx déposer).
Et mettez à jour le fichier comme ci-dessous –
Étape 3 : Créer un mappage avec le composant AEM
Ouvrez le fichier import-components.js et mettez-le à jour comme ci-dessous.
MapTo(`${NEXT_PUBLIC_AEM_SITE}/components/democomponent`)(AEMDemoComponent)
Étape 4 : déposez le composant de démonstration sur la page d’accueil
2. Déposez le composant ici
3. Maintenant, ouvrez la page d’accueil en mode publié – http://localhost:4502/content/wknd-app/us/en/home.html puis inspectez la page et vérifiez les appels réseau
4. Vérifiez maintenant le composant sur l’application NextJs : http://localhost:3000/
5. Inspectez la page, ouvrez l’onglet réseau, vérifiez l’appel _app.js, puis recherchez le composant démo.
VOUS TROUVEZ CECI UTILE ? PARTAGEZ-LE
Source link