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.frontendaus dem vollständigen Build-Zyklus- Im Stammverzeichnis
pom.xmldes 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.frontendfür den Frontend-Pipeline-Vertrag vor, indem Sie zwei neue Webpack-Konfigurationsdateien hinzufügen.- Kopieren Sie die bestehende
webpack.common.jsalswebpack.theme.common.js, und ändern Sie die Eigenschaftoutputund die Plugin-KonfigurationsparameterMiniCssExtractPluginundCopyWebpackPluginwie 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: './theme' } ] }) ...- Kopieren Sie die vorhandene
webpack.prod.jsalswebpack.theme.prod.js, und ändern Sie den Speicherort der Variablencommonin 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.jsonder Wert der Eigenschaftnamemit dem Standortnamen aus dem Knoten/confübereinstimmt und dass sie unter der Eigenschaft überscriptseinbuild-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.contentfü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.frontendunter dem Ordnerdistmithilfe 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 WertthemePackageNamedem Wert der Eigenschaftpackage.jsonundnameentspricht, undsiteTemplatePathauf den Stubpfad/libs/wcm/core/site-templates/aem-site-template-stub-2.0.0verweist.
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-colorauf Adobe-Rot (oder eine andere Farbe Ihrer Wahl), indem wirui.frontend/src/main/webpack/base/sass/_variables.scssaktualisieren.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.