Utveckla webbplatser med den integrerade pipeline som behövs developing-site-with-front-end-pipeline
front-end-pipeline ger gränssnittsutvecklare större oberoende och snabbar upp utvecklingen avsevärt. I den här artikeln beskrivs hur processen fungerar och viktiga saker som hjälper dig att få ut det mesta av den belyses.
Förstå processen för pipeline-framtagning och bygge i AEM Cloud Manager front-end-build-contract
Ungefär som i fullständig stackbyggmiljö har frontendpipeline en egen miljö. Utvecklarna har viss flexibilitet i den här pipeline-hanteringen, förutsatt att de följer det första byggavtalet.
front-end-pipelinen kräver att front-end-projektet Node.js
använder skriptdirektivet build
för att generera det bygge som det distribuerar. Detta krav finns eftersom Cloud Manager använder kommandot npm run build
för att generera det distribuerbara projektet för front-end-bygget.
Det resulterande innehållet i mappen dist
är det som distribueras av Cloud Manager, vilket fungerar som statiska filer. Dessa filer lagras externt på AEM, men är tillgängliga via en /content/...
-URL i den distribuerade miljön.
Node.js-versioner som stöds node-versions
Klientmiljön stöder följande Node.js
-versioner:
- 23
- 22
- 20
- 18
- 16
- 14 (standard)
- 12
Du kan använda NODE_VERSION
miljövariabelnför att ange önskad version.
Bästa tillvägagångssätt för att namnge och hantera rörledningar för slutanvändare i AEM single-source-of-truth
Ett bra tillvägagångssätt för AEM är att behålla en enda, tydlig källa till sanning. Cloud Manager har till syfte att förstärka denna princip. Men eftersom frontdelsflödet tillåter att delar av koden frikopplas är det viktigt med rätt konfiguration. Undvik konflikter genom att se till att flera frontendledningar inte distribueras till samma plats i samma miljö.
Därför rekommenderar Adobe att du upprätthåller en systematisk namnkonvention, särskilt när flera rörledningar för framände skapas. Du kan använda följande rekommendationer:
- Namnet på frontmodulen, som definieras av egenskapen
name
för filenpackage.json
, ska innehålla namnet på den plats som det gäller för. För en webbplats som finns på/content/wknd
skulle namnet på frontmodulen till exempel varawknd-theme
. - När en front-end-modul delar samma Git-databas med andra moduler, ska namnet på dess mapp vara lika med, eller innehålla samma namn på, front end-modulen. Om till exempel front end-modulen heter
wknd-theme
skulle namnet på den omslutande mappen vara något som liknarwknd-theme-sources
. - Namnet på Cloud Manager front-end-pipeline bör även innehålla namnet på front-end-modulen och även lägga till den miljö som den distribuerar till (produktion eller utveckling). För till exempel frontmodulen
wknd-theme
kan pipeline heta något somwknd-theme-prod
.
En sådan konvention förhindrar följande misstag vid distribution:
- Använder en frontendmodul på fel plats.
- Skapa flera frontendmoduler som tillämpar samma plats, vilket skulle skriva över varandra.
- Att skapa flera rörledningar för samma källor, vilket skulle kunna orsaka konkurrensförhållanden, utan att garantera ordningen för driftsättningar.
Koordinera frontend- och backend-utveckling för stabilitet i AEM separation-of-concerns
En viktig bästa metod för varje separat problem är att utforma och hantera kontraktet noggrant och definiera gränserna mellan dem. I den rörliga delen är detta avtal HTML och JSON-utdata från webbplatsen. Genom att bevara stabiliteten i dessa utdata kan du säkerställa att frontend-pipelinen ger maximalt värde så att front-end-teamet kan arbeta oberoende av varandra.
Det finns för närvarande ingen inbyggd funktion för att köra rörledningen i full hög synkront med frontdelsrörledningarna. Därför är det viktigt att noggrant hantera avtalet som definierar deras gränser när man separerar frontend-utvecklingen från den kompletta rörledningen. Kontraktet består vanligtvis av HTML eller JSON, eller båda, som återges av Experience Manager. Alla ändringar av detta avtal bör samordnas noggrant mellan grupper som hanterar olika rörledningar för att säkerställa en smidig övergång och korrekt sekvensering av uppdateringarna.
Följande steg rekommenderas i allmänhet när du ändrar HTML- eller JSON-utdata, särskilt när båda områdena påverkas.
-
Back-end-teamet skapar först en utvecklingsmiljö med nya HTML- eller JSON-utdata.
-
Med hjälp av den fullständiga pipeline-funktionen distribuerar de koden som krävs för att återge nya HTML- eller JSON-utdata, eller båda, som önskas.
-
Om det gäller en miljö som front end-teamet inte tidigare hade tillgång till måste följande steg utföras.
-
URL: Front-end-teamet måste känna till URL:en för den utvecklingsmiljön.
-
ACL: front-end-teamet måste få en lokal AEM-användare med rättigheter som liknar"Contributors".
-
Git: Front-end-teamet måste ha en separat Git-plats för front-end-modulen som specifikt anger den utvecklingsmiljön som mål.
Ett vanligt tillvägagångssätt är att skapa en
dev
-gren för att hantera ändringar som gjorts i utvecklingsmiljön. Den här metoden tillåter en enklare sammanslagning tillbaka till grenenmain
, som används för distribution till produktionsmiljön. -
Pipeline: Det måste finnas en frontendgrupp som distribuerar till utvecklingsmiljön. Detta tillvägagångssätt skulle distribuera frontendmodulen som vanligtvis finns i grenen
dev
, vilket beskrivs i föregående punkt.
-
-
-
Det ledande teamet får sedan CSS- och JS-koden att fungera med både gamla och nya utdata.
-
Om du vill utveckla lokalt gör du som vanligt följande:
- Kommandot
npx aem-site-theme-builder proxy
startar en proxyserver som hämtar innehåll från en AEM-miljö. Den ersätter CSS- och JS-filerna för den främre modulen med dessa filer från den lokaladist
-mappen. - Genom att konfigurera variabeln
AEM_URL
i den dolda filen.env
kan du styra från vilken AEM-miljö den lokala proxyservern ska använda innehållet. - Om du ändrar värdet för
AEM_URL
kan du därför växla mellan produktions- och utvecklingsmiljöerna för att justera CSS och JS så att det passar båda miljöerna. - Det måste fungera med den utvecklingsmiljö som återger det nya resultatet och med den produktionsmiljö som återger det gamla resultatet.
- Kommandot
-
Det färdiga arbetet slutförs när den uppdaterade frontmodulen fungerar för båda miljöerna och distribueras till båda.
-
-
Back-end-teamet kan sedan uppdatera produktionsmiljön genom att distribuera koden som återger nya HTML- eller JSON-utdata, eller både och, via pipeline i full stack.
-
front-end-teamet kan rensa upp sin CSS och JS, ta bort element som bara behövs för det gamla resultatet och distribuera den slutliga uppdateringen till produktionen med hjälp av front-end-pipeline.
Ytterligare resurser additional-resources
-
Lär dig hur AEM webbplatsteman kan användas för att anpassa webbplatsens stil och design.
Se Webbplatsteman.
-
Adobe tillhandahåller en AEM Site Theme Builder som en uppsättning skript för att skapa nya webbplatsteman.