Aktualisieren des Full-Stack-AEM-Projekts zur Verwendung der Frontend-Pipeline update-project-enable-frontend-pipeline
In diesem Kapitel nehmen wir Konfigurationsänderungen am WKND Sites-Projekt vor, um die Frontend-Pipeline zur Bereitstellung von JavaScript und CSS zu verwenden, anstatt eine vollständige Pipelineausführung erforderlich zu machen. Dies entkoppelt den Entwicklungs- und Bereitstellungslebenszyklus von Frontend- und Backend-Artefakten und ermöglicht so insgesamt einen schnelleren, iterativen Entwicklungsprozess.
Ziele objectives
- Aktualisieren des Full-Stack-Projekts zur Verwendung der Frontend-Pipeline
Überblick über die Konfigurationsänderungen im Full-Stack-AEM-Projekt
Voraussetzungen prerequisites
Dies ist ein mehrteiliges Tutorial und es wird vorausgesetzt, dass Sie das „ui.frontend“-Modul gelesen haben.
Änderungen am Full-Stack-AEM-Projekt
Es gibt drei projektbezogene Konfigurationsänderungen und eine Stiländerung, die für einen Testlauf bereitgestellt werden sollen. Daher ergeben sich insgesamt vier spezifische Änderungen im WKND-Projekt, um sie für den Frontend-Pipeline-Vertrag zu aktivieren.
-
Entfernen Sie das Modul
ui.frontend
aus dem vollständigen Build-Zyklus- Im Stammverzeichnis
pom.xml
des WKND-Sites-Projekts kommentieren Sie den Eintrag<module>ui.frontend</module>
des Submoduls.
code language-xml ... <modules> <module>all</module> <module>core</module> <!-- <module>ui.frontend</module> --> <module>ui.apps</module> ...
- Und kommentarbezogene Abhängigkeit von
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> --> ...
- Im Stammverzeichnis
-
Bereiten Sie das Modul
ui.frontend
für den Frontend-Pipeline-Vertrag vor, indem Sie zwei neue Webpack-Konfigurationsdateien hinzufügen.- Kopieren Sie die bestehende
webpack.common.js
alswebpack.theme.common.js
, und ändern Sie die Eigenschaftoutput
und die Plugin-KonfigurationsparameterMiniCssExtractPlugin
undCopyWebpackPlugin
wie folgt:
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: './clientlib-site' } ] }) ...
- Kopieren Sie die vorhandene
webpack.prod.js
alswebpack.theme.prod.js
, und ändern Sie den Speicherort der Variablencommon
in der oben genannten Datei als
code language-javascript ... const common = require('./webpack.theme.common.js'); ...
note note NOTE Die obigen beiden Konfigurationsänderungen des „webpack“ sollen unterschiedliche Ausgabedateien und Ordnernamen haben, sodass wir einfach zwischen Clientlib (Full-Stack) und den von Designs generierten (Frontend) Pipeline-Frontend-Artefakten unterscheiden können. Wie Sie vermuten, können die oben genannten Änderungen übersprungen werden, um auch vorhandene Webpack-Konfigurationen zu verwenden. Die folgenden Änderungen sind jedoch erforderlich. Es liegt an Ihnen, wie Sie sie benennen oder organisieren wollen. - Vergewissern Sie sich, dass in der Datei
package.json
der Wert der Eigenschaftname
mit dem Standortnamen aus dem Knoten/conf
übereinstimmt und dass sie unter der Eigenschaft überscripts
einbuild
-Skript verfügt, das anweist, wie die Frontend-Dateien aus diesem Modul zu erstellen sind.
code language-javascript { "name": "wknd", "version": "1.0.0", ... "scripts": { "build": "webpack --config ./webpack.theme.prod.js" } ... }
- Kopieren Sie die bestehende
-
Bereiten Sie das Modul
ui.content
für die Frontend-Pipeline vor, indem Sie zwei Sling-Konfigurationen hinzufügen.- Erstellen Sie eine Datei unter
com.adobe.cq.wcm.core.components.config.HtmlPageItemsConfig
– diese enthält alle Frontend-Dateien, die das Modului.frontend
unter dem Ordnerdist
mithilfe des Webpack-Build-Prozesses erzeugt.
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 Siehe die vollständige HtmlPageItemsConfig im AEM WKND-Sites-Projekt. - Zweitens
com.adobe.aem.wcm.site.manager.config.SiteConfig
, wobei der WertthemePackageName
dem Wert der Eigenschaftpackage.json
undname
entspricht, undsiteTemplatePath
auf den Stubpfad/libs/wcm/core/site-templates/aem-site-template-stub-2.0.0
verweist.
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 Siehe die vollständige SiteConfig im AEM WKND-Sites-Projekt. - Erstellen Sie eine Datei unter
-
Um eine Themen- oder Stiländerung über die Frontend-Pipeline für einen Testlauf bereitzustellen, ändern wir
text-color
auf Adobe-Rot (oder eine andere Farbe Ihrer Wahl), indem wirui.frontend/src/main/webpack/base/sass/_variables.scss
aktualisieren.code language-css $black: #a40606; ...
Senden Sie schließlich diese Änderungen an das Adobe-Git-Repository Ihres Programms.
Vorsicht – Schaltfläche Frontend-Pipeline aktivieren
Die Option Site der Schienenauswahl zeigt die Schaltfläche Frontend-Pipeline aktivieren bei Auswahl des Site-Stamms oder der Site-Seite. Wenn Sie auf die Schaltfläche Frontend-Pipeline aktivieren klicken, werden die obigen Sling-Konfigurationen außer Kraft gesetzt. Stellen Sie sicher, dass Sie nicht auf diese Schaltfläche klicken, nachdem Sie die obigen Änderungen über die Cloud Manager-Pipeline bereitgestellt haben.
Wenn versehentlich darauf geklickt wird, müssen Sie die Pipelines erneut ausführen, um sicherzustellen, dass der Frontend-Pipeline-Vertrag und die Änderungen wiederhergestellt werden.
Herzlichen Glückwunsch! congratulations
Herzlichen Glückwunsch! Sie haben das WKND Sites-Projekt aktualisiert, um es für den Frontend-Pipeline-Vertrag zu aktivieren.
Nächste Schritte next-steps
Im nächsten Kapitel, Bereitstellen mithilfe der Frontend-Pipeline, erstellen und führen Sie eine Frontend-Pipeline aus und überprüfen, wie wir von der „/etc.clientlibs“-basierten Bereitstellung von Frontend-Ressourcen weggekommen sind.