DocumentaciónAEMTutoriales de AEMTutoriales de WKND de AEM Sites

Revise el módulo "ui.frontend" del proyecto de AEM de pila completa

Última actualización: 5 de mayo de 2025
  • Se aplica a:
  • Experience Manager as a Cloud Service
  • Temas:
  • Proyecto arquetipo AEM
  • Cloud Manager
  • Canalización CI/CD

Creado para:

  • Intermedio
  • Desarrollador
  • Administrador

En, en este capítulo revisamos el desarrollo, la implementación y el envío de los artefactos front-end de un proyecto de AEM de pila completa, centrándonos en el módulo "ui.frontend" del proyecto WKND Sites.

Objetivos

  • Comprender el flujo de generación e implementación de artefactos front-end en un proyecto full-stack de AEM
  • Revise las configuraciones del módulo webpack del proyecto full-stack de AEM ui.frontend
  • Proceso de generación de la biblioteca de cliente de AEM (también conocida como clientlibs)

Flujo de implementación front-end para proyectos de pila completa y creación rápida de sitios de AEM

IMPORTANT
En este vídeo se explica y muestra el flujo front-end de los proyectos de Creación rápida y de pila completa para esbozar la sutil diferencia en el modelo de generación, implementación y entrega de recursos front-end.

video poster

https://video.tv.adobe.com/v/3409344?quality=12&learn=on

Requisitos previos

  • Clonar el proyecto WKND Sites de AEM
  • Se ha creado e implementado el proyecto WKND Sites de AEM clonado en AEM as a Cloud Service.

Consulte el proyecto del sitio WKND de AEM README.md para obtener más información.

Flujo de artefactos front-end del proyecto de pila completa de AEM

A continuación se muestra una representación de alto nivel del flujo de desarrollo, implementación y entrega de los artefactos front-end en un proyecto de AEM de pila completa.

Desarrollo, implementación y entrega de artefactos front-end

Durante la fase de desarrollo, se realizan cambios en el front-end como el estilo y el cambio de marca mediante la actualización de los archivos CSS, JS de la carpeta ui.frontend/src/main/webpack. Luego, durante el tiempo de compilación, el módulo-bundler webpack y el complemento maven convierten estos archivos en clientlibs de AEM optimizados bajo el módulo ui.apps.

Los cambios del front-end se implementan en el entorno de AEM as a Cloud Service al ejecutar la canalización Full-stack en Cloud Manager.

Los recursos front-end se entregan a los exploradores web a través de rutas URI que comienzan por /etc.clientlibs/ y, por lo general, se almacenan en la caché en AEM Dispatcher y CDN.

NOTE
Del mismo modo, en el Recorrido de creación rápida de sitios de AEM, los cambios del front-end se implementan en el entorno de AEM as a Cloud Service ejecutando la canalización Front-End, consulte Configurar la canalización

Revisar las configuraciones de Webpack en el proyecto de WKND Sites

  • Hay tres archivos de configuración webpack utilizados para agrupar los recursos front-end de los sitios WKND.

    1. webpack.common: contiene la configuración común para indicar al paquete de recursos WKND y la optimización. La propiedad output indica dónde emitir los archivos consolidados (también conocidos como paquetes JavaScript, pero que no se deben confundir con los paquetes OSGi de AEM) que crea. El nombre predeterminado es clientlib-site/js/[name].bundle.js.
        ...
        output: {
                filename: 'clientlib-site/js/[name].bundle.js',
                path: path.resolve(__dirname, 'dist')
            }
        ...
    
    1. webpack.dev.js contiene la configuración de desarrollo para el webpack-dev-serve y señala a la plantilla de HTML que se va a usar. También contiene una configuración proxy para una instancia de AEM que se ejecuta en localhost:4502.
        ...
        devServer: {
            proxy: [{
                context: ['/content', '/etc.clientlibs', '/libs'],
                target: 'http://localhost:4502',
            }],
        ...
    
    1. webpack.prod.js contiene la configuración de production y usa los complementos para transformar los archivos de desarrollo en paquetes optimizados.
        ...
        module.exports = merge(common, {
            mode: 'production',
            optimization: {
                minimize: true,
                minimizer: [
                    new TerserPlugin(),
                    new CssMinimizerPlugin({ ...})
            }
        ...
    
  • Los recursos agrupados se mueven al módulo ui.apps mediante el complemento aem-clientlib-generator, utilizando la configuración administrada en el archivo clientlib.config.js.

    ...
    const BUILD_DIR = path.join(__dirname, 'dist');
    const CLIENTLIB_DIR = path.join(
    __dirname,
    '..',
    'ui.apps',
    'src',
    'main',
    'content',
    'jcr_root',
    'apps',
    'wknd',
    'clientlibs'
    );
    ...
  • frontend-maven-plugin de ui.frontend/pom.xml organiza el agrupamiento de Webpack y la generación de clientlib durante la compilación del proyecto de AEM.

$ mvn clean install -PautoInstallSinglePackage

Implementación en AEM as a Cloud Service

La canalización Full-stack implementa estos cambios en un entorno de AEM as a Cloud Service.

Envío desde AEM as a Cloud Service

Los recursos front-end implementados a través de la canalización de pila completa se entregan desde el sitio de AEM a los exploradores web como /etc.clientlibs archivos. Puede comprobarlo si visita el sitio WKND alojado públicamente y ve el origen de la página web.

    ....
    <link rel="stylesheet" href="/etc.clientlibs/wknd/clientlibs/clientlib-site.lc-181cd4102f7f49aa30eea548a7715c31-lc.min.css" type="text/css">

    ...

    <script async src="/etc.clientlibs/wknd/clientlibs/clientlib-site.lc-d4e7c03fe5c6a405a23b3ca1cc3dcd3d-lc.min.js"></script>
    ....

Enhorabuena.

Felicidades, ha revisado el módulo ui.frontend del proyecto de pila completa

Pasos siguientes

En el capítulo siguiente, Actualizar proyecto para utilizar canalización front-end, actualizará el proyecto WKND Sites de AEM para habilitarlo para el contrato de canalización front-end.

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