AEM Actualizar proyecto de de pila completa para utilizar canalización front-end update-project-enable-frontend-pipeline

En este capítulo, realizamos cambios de configuración en el proyecto de WKND Sites para utilizar la canalización front-end para implementar JavaScript y CSS, en lugar de requerir una ejecución de canalización de pila completa. Esto desvincula el ciclo vital de desarrollo e implementación de los artefactos front-end y back-end, lo que permite un proceso de desarrollo más rápido e iterativo en general.

Objetivos objectives

  • Actualizar el proyecto de pila completa para utilizar la canalización front-end

AEM Información general sobre los cambios de configuración en el proyecto de código de pila completa de la

Requisitos previos prerequisites

Este es un tutorial de varias partes y se supone que ha revisado el módulo 'ui.frontend'.

AEM Cambios en el proyecto de código de pila completa de la

Hay tres cambios de configuración relacionados con el proyecto y un cambio de estilo que se deben implementar para una ejecución de prueba, por lo que en total hay cuatro cambios específicos en el proyecto WKND para habilitarlo para el contrato de canalización front-end.

  1. Quitar el módulo ui.frontend del ciclo de compilación de pila completa

    • En, la raíz pom.xml del proyecto de WKND Sites comenta la entrada del submódulo <module>ui.frontend</module>.
    code language-xml
        ...
        <modules>
        <module>all</module>
        <module>core</module>
        <!--
        <module>ui.frontend</module>
        -->
        <module>ui.apps</module>
        ...
    
    • Y dependencia relacionada con los comentarios de 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>
        -->
        ...
    
  2. Prepare el módulo ui.frontend para el contrato de canalización front-end agregando dos nuevos archivos de configuración de Webpack.

    • Copie el(la) webpack.common.js existente(a) como webpack.theme.common.js, y cambie la propiedad output y los parámetros de configuración del complemento MiniCssExtractPlugin, CopyWebpackPlugin de la siguiente manera:
    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' }
            ]
        })
    ...
    
    • Copie la webpack.prod.js existente como webpack.theme.prod.js y cambie la ubicación de la variable common al archivo anterior como
    code language-javascript
    ...
        const common = require('./webpack.theme.common.js');
    ...
    
    note note
    NOTE
    Los dos cambios de configuración anteriores del "webpack" deben tener nombres de archivo y carpeta de salida diferentes, para que podamos diferenciar fácilmente entre los artefactos clientlib (full-stack) y los generados por el tema (front-end) del front-end de la canalización.
    Como ha adivinado, los cambios anteriores se pueden omitir para utilizar también las configuraciones de Webpack existentes, pero los cambios siguientes son obligatorios.
    Depende de usted cómo desee ponerles nombre u organizarlos.
    • En el archivo package.json, asegúrese de que el valor de la propiedad name sea el mismo que el nombre de sitio del nodo /conf. Y en la propiedad scripts, un script build que indica cómo generar los archivos front-end a partir de este módulo.
    code language-javascript
        {
        "name": "wknd",
        "version": "1.0.0",
        ...
    
        "scripts": {
            "build": "webpack --config ./webpack.theme.prod.js"
        }
    
        ...
        }
    
  3. Prepare el módulo ui.content para la canalización front-end agregando dos configuraciones de Sling.

    • Crear un archivo en com.adobe.cq.wcm.core.components.config.HtmlPageItemsConfig: esto incluye todos los archivos front-end que el módulo ui.frontend genera en la carpeta dist mediante el proceso de generación de Webpack.
    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
    AEM Ver HtmlPageItemsConfig completo en el proyecto de sitios WKND de la.
    • Segundo, com.adobe.aem.wcm.site.manager.config.SiteConfig con el valor themePackageName que es el mismo que el valor de propiedad package.json y name, y siteTemplatePath que señala a un valor de ruta de acceso auxiliar /libs/wcm/core/site-templates/aem-site-template-stub-2.0.0.
    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
    AEM Vea, el SiteConfig completo en el Proyecto de sitios WKND de.
  4. Se ha cambiado un tema o estilos para implementarlos a través de la canalización front-end para una ejecución de prueba. Estamos cambiando text-color a rojo Adobe (o puede elegir el suyo propio) al actualizar ui.frontend/src/main/webpack/base/sass/_variables.scss.

    code language-css
        $black:     #a40606;
        ...
    

Finalmente, inserte estos cambios en el repositorio de Git de Adobe del programa.

AVAILABILITY
AEM Estos cambios están disponibles en GitHub dentro de la canalización front-end rama del proyecto de sitios WKND de.

Precaución: Botón Habilitar canalización front-end

La opción Sitio del selector de carril 1} muestra el botón Habilitar canalización front-end al seleccionar la raíz del sitio o la página del sitio.Al hacer clic en el botón Habilitar canalización front-end, se anularán las configuraciones de Sling anteriores. Asegúrese de no hacer clic en este botón después de implementar los cambios anteriores a través de la ejecución de la canalización de Cloud Manager.

Botón Habilitar canalización front-end

Si se hace clic en él por error, debe volver a ejecutar las canalizaciones para asegurarse de que se restauran el contrato y los cambios de la canalización front-end.

Enhorabuena. congratulations

¡Enhorabuena! Ha actualizado el proyecto de WKND Sites para habilitarlo para el contrato de canalización front-end.

Pasos siguientes next-steps

En el siguiente capítulo, Implementar mediante la canalización front-end, creará y ejecutará una canalización front-end y verificará cómo nos hemos alejado de la entrega de recursos front-end basada en '/etc.clientlibs'.

recommendation-more-help
b2a561c1-47c0-4182-b8c1-757a197484f9