Revise el módulo "ui.frontend" del proyecto de AEM de pila completa
- Se aplica a:
- Experience Manager as a Cloud Service
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
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.
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.
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.
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 esclientlib-site/js/[name].bundle.js
.
... output: { filename: 'clientlib-site/js/[name].bundle.js', path: path.resolve(__dirname, 'dist') } ...
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 enlocalhost:4502
.
... devServer: { proxy: [{ context: ['/content', '/etc.clientlibs', '/libs'], target: 'http://localhost:4502', }], ...
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 archivoclientlib.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.