Uppdatera AEM-projekt i full stack för att använda pipeline i frontend-läget update-project-enable-frontend-pipeline
I det här kapitlet gör vi konfigurationsändringar i WKND Sites-projektet för att använda front end-pipeline för att distribuera JavaScript och CSS, i stället för att kräva en fullständig pipeline-körning i stacken. Detta försvårar utvecklingsfasen och driftsättningslivscykeln för front-end- och back-end-artefakter, vilket ger en snabbare, iterativ utvecklingsprocess som helhet.
Mål objectives
- Uppdatera ett projekt i full hög för att använda frontendpipeline
Översikt över konfigurationsändringar i AEM-projekt i fullhög
Förutsättningar prerequisites
Det här är en självstudiekurs i flera delar och det antas att du har granskat modulen 'ui.front' .
Förändringar i AEM-projekt i full hög
Det finns tre projektrelaterade konfigurationsändringar och en formatändring som ska distribueras för en testkörning, vilket innebär totalt fyra specifika ändringar i WKND-projektet för att aktivera det för det främre pipelinekontraktet.
-
Ta bort modulen
ui.frontendfrån byggcykeln för hela stacken- I kommenterar WKND Sites-projektets rot
pom.xmlposten för undermodulen<module>ui.frontend</module>.
code language-xml ... <modules> <module>all</module> <module>core</module> <!-- <module>ui.frontend</module> --> <module>ui.apps</module> ...- Och kommentarrelaterade beroenden från
ui.apps/pom.xml
code language-xml ... <!-- ====================================================================== --> <!-- D E P E N D E N C I E S --> <!-- ====================================================================== --> ... <!-- <dependency> <groupId>com.adobe.aem.guides</groupId> <artifactId>aem-guides-wknd.ui.frontend</artifactId> <version>${project.version}</version> <type>zip</type> </dependency> --> ... - I kommenterar WKND Sites-projektets rot
-
Förbered modulen
ui.frontendför frontend-pipelinekontraktet genom att lägga till två nya webbpaketkonfigurationsfiler.- Kopiera den befintliga
webpack.common.jssomwebpack.theme.common.jsoch ändraoutput-egenskapen ochMiniCssExtractPlugin,CopyWebpackPluginplug-in-konfigurationsparametrarna så här:
code language-javascript ... output: { filename: 'theme/js/[name].js', path: path.resolve(__dirname, 'dist') } ... ... new MiniCssExtractPlugin({ filename: 'theme/[name].css' }), new CopyWebpackPlugin({ patterns: [ { from: path.resolve(__dirname, SOURCE_ROOT + '/resources'), to: './theme' } ] }) ...- Kopiera den befintliga
webpack.prod.jssomwebpack.theme.prod.jsoch ändracommon-variabelns plats till ovanstående fil som
code language-javascript ... const common = require('./webpack.theme.common.js'); ...note note NOTE De två konfigurationsändringarna ovan för 'webpack' är att ha olika namn på utdatafiler och mappar, så det är enkelt att skilja mellan klientlib (fullständig hög) och tema som genereras (frontendspipeline). Som du gissade kan ändringarna ovan hoppas över för att använda befintliga webbpaketskonfigurationer, men nedanstående ändringar krävs. Det är upp till dig hur du vill namnge eller ordna dem. - Kontrollera att egenskapsvärdet
nameär samma som platsnamnet från noden/confi filenpackage.json. Under egenskapenscriptsfinns ettbuild-skript som instruerar om hur front end-filerna från den här modulen ska skapas.
code language-javascript { "name": "wknd", "version": "1.0.0", ... "scripts": { "build": "webpack --config ./webpack.theme.prod.js" } ... } - Kopiera den befintliga
-
Förbered modulen
ui.contentför frontendpipeline genom att lägga till två Sling-konfigurationer.- Skapa en fil på
com.adobe.cq.wcm.core.components.config.HtmlPageItemsConfig- detta inkluderar alla frontendfiler som genereras av modulenui.frontendunder mappendistmed hjälp av webbpaketsbyggprocessen.
code language-xml ... <css jcr:primaryType="nt:unstructured" element="link" location="header"> <attributes jcr:primaryType="nt:unstructured"> <as jcr:primaryType="nt:unstructured" name="as" value="style"/> <href jcr:primaryType="nt:unstructured" name="href" value="/theme/site.css"/> ...note tip TIP Se hela HtmlPageItemsConfig i AEM WKND Sites-projektet. - Därefter är
com.adobe.aem.wcm.site.manager.config.SiteConfigmed värdetthemePackageNamedetsamma som egenskapsvärdetpackage.jsonochnameochsiteTemplatePathpekar på ett/libs/wcm/core/site-templates/aem-site-template-stub-2.0.0stub-sökvägsvärde.
code language-xml ... <?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" jcr:primaryType="nt:unstructured" siteTemplatePath="/libs/wcm/core/site-templates/aem-site-template-stub-2.0.0" themePackageName="wknd"> </jcr:root> ...note tip TIP Se hela SiteConfig i AEM WKND Sites-projektet. - Skapa en fil på
-
Ett eller flera teman ändras för att distribueras via frontendpipeline för en testkörning.
text-colorändras till Adobe red (eller så kan du välja ett eget) genom attui.frontend/src/main/webpack/base/sass/_variables.scssuppdateras.code language-css $black: #a40606; ...
Slutligen kan du överföra dessa ändringar till Adobe Git-databasen.
Varning - Aktivera frontslutspipeline-knapp
Alternativet Plats för spårningsväljaren visar knappen Aktivera frontpipeline när du väljer platsroten eller webbplatssidan. Om du klickar på knappen Aktivera frontpipeline åsidosätts de Sling-konfigurationer som anges ovan. Kontrollera att du inte klickar på den här knappen efter att du distribuerat de ovanstående ändringarna via Cloud Manager pipeline-körning.
Om du klickar på den av misstag måste du köra pipelines igen för att se till att slutavtalet för pipeline och ändringarna återställs.
Grattis! congratulations
Du har uppdaterat WKND Sites-projektet för att aktivera det för det främre pipelinekontraktet.
Nästa steg next-steps
I nästa kapitel, Distribuera med frontdelspipeline, skapar och kör du en frontendpipeline och kontrollerar hur vi flyttade bort från den /etc.clientlibs-baserade frontdelsleveransen.