Rivedi il modulo "ui.frontend" del progetto AEM full-stack
- Si applica a:
- Experience Manager as a Cloud Service
Creato per:
- Intermedio
- Sviluppatore
- Amministratore
In questo capitolo esaminiamo lo sviluppo, la distribuzione e la distribuzione di artefatti front-end di un progetto AEM full-stack, concentrandoci sul modulo "ui.frontend" del progetto Sites WKND.
Obiettivi
- Comprendere la generazione e il flusso di distribuzione di artefatti front-end in un progetto full-stack di AEM
- Verifica le configurazioni webpack del modulo
ui.frontend
del progetto full stack di AEM - Processo di generazione della libreria client di AEM (nota anche come clientlibs)
Flusso di distribuzione front-end per progetti AEM full-stack e Creazione rapida di siti
Prerequisiti
- Clona il progetto AEM WKND Sites
- Genera e implementa in AEM as a Cloud Service il progetto clonato AEM WKND Sites.
Per ulteriori dettagli, vedi il progetto del sito WKND AEM README.md.
Flusso di artefatti front-end per progetto full-stack di AEM
Di seguito è riportata una rappresentazione di alto livello del flusso sviluppo, distribuzione e consegna degli artefatti front-end in un progetto AEM full-stack.
Durante la fase di sviluppo, le modifiche front-end come lo stile e il rebranding vengono eseguite aggiornando i file CSS e JS dalla cartella ui.frontend/src/main/webpack
. Quindi, durante la fase di creazione, il modulo-bundler webpack e il plug-in maven trasformano questi file in clientlibs ottimizzati di AEM nel modulo ui.apps
.
Le modifiche front-end vengono distribuite nell'ambiente AEM as a Cloud Service durante l'esecuzione della pipeline Full-stack in Cloud Manager.
Le risorse front-end vengono distribuite ai browser web tramite percorsi URI che iniziano con /etc.clientlibs/
e sono in genere memorizzate nella cache in AEM Dispatcher e CDN.
Verifica configurazioni webpack nel progetto WKND Sites
-
Sono disponibili tre file di configurazione webpack utilizzati per raggruppare le risorse front-end dei siti WKND.
webpack.common
- Contiene la configurazione common per istruire il bundling e l'ottimizzazione delle risorse WKND. La proprietà output indica dove emettere i file consolidati (noti anche come bundle di JavaScript, ma da non confondere con i bundle OSGi di AEM) che crea. Il nome predefinito èclientlib-site/js/[name].bundle.js
.
... output: { filename: 'clientlib-site/js/[name].bundle.js', path: path.resolve(__dirname, 'dist') } ...
webpack.dev.js
contiene la configurazione development per webpack-dev-server e punta al modello HTML da utilizzare. Contiene anche una configurazione proxy a un'istanza AEM in esecuzione sulocalhost:4502
.
... devServer: { proxy: [{ context: ['/content', '/etc.clientlibs', '/libs'], target: 'http://localhost:4502', }], ...
webpack.prod.js
contiene la configurazione production e utilizza i plug-in per trasformare i file di sviluppo in bundle ottimizzati.
... module.exports = merge(common, { mode: 'production', optimization: { minimize: true, minimizer: [ new TerserPlugin(), new CssMinimizerPlugin({ ...}) } ...
-
Le risorse in bundle vengono spostate nel modulo
ui.apps
utilizzando il plug-in aem-clientlib-generator, utilizzando la configurazione gestita nel fileclientlib.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 da
ui.frontend/pom.xml
orchestra la generazione di webpack bundling e clientlib durante la generazione del progetto AEM.
$ mvn clean install -PautoInstallSinglePackage
Implementazione in AEM as a Cloud Service
La pipeline full stack distribuisce queste modifiche in un ambiente AEM as a Cloud Service.
Consegna da AEM as a Cloud Service
Le risorse front-end distribuite tramite la pipeline full-stack vengono distribuite dal sito AEM ai browser Web come /etc.clientlibs
file. Puoi verificare questo fatto visitando il sito WKND ospitato pubblicamente e visualizzando l'origine della pagina 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>
....
Congratulazioni.
Congratulazioni, hai esaminato il modulo ui.frontend del progetto full stack
Passaggi successivi
Nel prossimo capitolo, Aggiorna progetto per utilizzare la pipeline front-end, aggiornerai il progetto AEM WKND Sites per abilitarlo per il contratto della pipeline front-end.