Configuración de un entorno de desarrollo local
Un entorno de desarrollo local es esencial para el rápido desarrollo de los sitios web distribuidos por Edge Delivery Services. El entorno utiliza código desarrollado localmente mientras obtiene contenido de Edge Delivery Services, lo que permite a los desarrolladores ver instantáneamente los cambios en el código. Esta configuración admite pruebas y desarrollo rápidos e iterativos.
Las herramientas y los procesos de desarrollo de un proyecto de sitio web de Edge Delivery Services están diseñados para resultarles familiares a los desarrolladores web y proporcionar una experiencia de desarrollo rápida y eficaz.
Topología de desarrollo
En este vídeo se ofrece información general sobre la topología de desarrollo para un proyecto de sitio web de Edge Delivery Services que se puede editar con el editor universal.
-
Repositorio de GitHub:
- Finalidad: aloja el código del sitio web (CSS y JavaScript).
- Estructura: la rama principal contiene código listo para la producción, mientras que otras ramas contienen código en funcionamiento.
- Funcionalidad: el código de cualquier rama se puede ejecutar en los entornos de producción o vista previa sin que afecte al sitio web activo.
-
Servicio AEM Author:
- Finalidad: sirve como repositorio de contenido canónico donde se edita y administra el contenido del sitio web.
- Funcionalidad: el editor universal lee y escribe el contenido. El contenido editado se publica en Edge Delivery Services en los entornos de producción o vista previa.
-
Editor universal:
- Finalidad: proporciona una interfaz WYSIWYG para editar el contenido del sitio web.
- Funcionalidad: lee y escribe en el servicio AEM Author. Se puede configurar para que use código de cualquier rama en el repositorio de GitHub para probar y validar cambios.
-
Edge Delivery Services:
-
Entorno de producción:
- Finalidad: envía el contenido y el código del sitio web activo a los usuarios finales.
- Funcionalidad: sirve contenido publicado desde el servicio AEM Author usando código de la rama principal del repositorio de GitHub.
-
Entorno de vista previa:
- Finalidad: proporciona un entorno de ensayo para probar y previsualizar el contenido y el código antes de la implementación.
- Funcionalidad: sirve contenido publicado desde el servicio AEM Author usando código de cualquier rama del repositorio de GitHub, lo que permite realizar pruebas exhaustivas sin que afecte al sitio web activo.
-
-
Entorno de desarrollador local:
-
Finalidad: permite a los desarrolladores escribir y probar código (CSS y JavaScript) localmente.
-
Estructura:
- Un clon local del repositorio de GitHub para el desarrollo basado en ramas.
- La CLI de AEM, que actúa como servidor de desarrollo, aplica cambios del código local en el entorno de vista previa para una experiencia de recarga en caliente.
-
Flujo de trabajo: los desarrolladores escriben código localmente, confirman cambios en una rama de trabajo, insertan la rama en GitHub, la validan en el editor universal (utilizando la rama especificada) y la combinan con la rama principal cuando estén listos para su implementación en producción.
-
Requisitos previos
Antes de iniciar el desarrollo, instale lo siguiente en su equipo:
- Git
- Node.js & npm
- Microsoft Visual Studio Code (o un editor de código similar)
Clonación del repositorio de GitHub
Clone el repositorio de GitHub creado en el capítulo del proyecto de código nuevo que contiene el proyecto de código Edge Delivery Services de AEM en su entorno de desarrollo local.
$ cd ~/Code
$ git clone git@github.com:<YOUR_ORG>/aem-wknd-eds-ue.git
Se crea una nueva carpeta aem-wknd-eds-ue
en el directorio Code
, que sirve como raíz del proyecto. Aunque el proyecto se puede clonar en cualquier ubicación del equipo, este tutorial utiliza ~/Code
como directorio raíz.
Instalación de las dependencias del proyecto
Vaya a la carpeta del proyecto e instale las dependencias necesarias con npm install
. Aunque los proyectos de Edge Delivery Services no utilizan sistemas de compilación tradicionales de Node.js, como Webpack o Vite, siguen precisando varias dependencias para el desarrollo local.
# ~/Code/aem-wknd-eds-ue
$ npm install
Instalación de la CLI de AEM
La CLI de AEM es una herramienta de línea de comandos Node.js diseñada para optimizar el desarrollo de sitios web de AEM basados en Edge Delivery Services, proporcionando un servidor de desarrollo local para acelerar el desarrollo y las pruebas de su sitio web.
Para instalar la CLI de AEM, ejecute lo siguiente:
# ~/Code/aem-wknd-eds-ue
$ npm install @adobe/aem-cli
La CLI de AEM también se puede instalar globalmente usando npm install --global @adobe/aem-cli
.
Inicio del servidor de desarrollo local de AEM
El comando aem up
inicia el servidor de desarrollo local y abre automáticamente una ventana del explorador en la dirección URL del servidor. Este servidor actúa como proxy inverso para el entorno Edge Delivery Services y sirve contenido desde allí mientras utiliza el código local base para el desarrollo.
$ cd ~/Code/aem-wknd-eds-ue
$ aem up
___ ________ ___ __ __
/ | / ____/ |/ / _____(_)___ ___ __ __/ /___ _/ /_____ _____
/ /| | / __/ / /|_/ / / ___/ / __ `__ \/ / / / / __ `/ __/ __ \/ ___/
/ ___ |/ /___/ / / / (__ ) / / / / / / /_/ / / /_/ / /_/ /_/ / /
/_/ |_/_____/_/ /_/ /____/_/_/ /_/ /_/\__,_/_/\__,_/\__/\____/_/
info: Starting AEM dev server version x.x.x
info: Local AEM dev server up and running: http://localhost:3000/
info: Enabled reverse proxy to https://main--aem-wknd-eds-ue--<YOUR_ORG>.aem.page
La CLI de AEM abre el sitio web en el explorador en http://localhost:3000/
. Los cambios en el proyecto se vuelven a cargar automáticamente en el explorador web, mientras que los cambios de contenido requieren la publicación en el entorno de vista previa y la actualización del explorador web.
Si el sitio web se abre con una página 404, es probable que fstab.yaml o paths.json actualizado en el nuevo proyecto de código esté configurado incorrectamente, o que los cambios no se hayan confirmado en la rama main
.
Generación de fragmentos JSON
Los proyectos de Edge Delivery Services, creados con la plantilla XWalk del elemento repetitivo de AEM, dependen de las configuraciones de JSON que habilitan la creación de bloques en el editor universal.
-
Fragmentos JSON: se almacenan con sus bloques asociados y definen los modelos de bloques, definiciones y filtros.
- Fragmentos de modelo: se almacenan en
/blocks/example/_example.json
. - Fragmentos de definición: se almacenan en
/blocks/example/_example.json
. - Fragmentos de filtro: se almacenan en
/blocks/example/_example.json
.
- Fragmentos de modelo: se almacenan en
La plantilla de proyecto XWalk del elemento repetitivo de AEM incluye un enlace previo a la confirmación de Husky que detecta cambios en fragmentos JSON y los compila en los archivos component-*.json
correspondientes tras git commit
.
Aunque los siguientes scripts NPM se pueden ejecutar manualmente a través de npm run
para generar los archivos JSON, esto generalmente no es necesario, ya que el enlace husky de preconfirmación lo gestiona automáticamente.
# ~/Code/aem-wknd-eds-ue
npm run build:json
build:json
component-*.json
correspondientes.build:json:models
/component-models.json
.build:json:definitions
/component-definitions.json
.build:json:filters
/component-filters.json
.npm run build:json
después de cualquier cambio en los archivos de fragmento para volver a generar los archivos JSON principales.Limpieza
La limpieza garantiza la calidad y coherencia del código, que es necesaria para los proyectos de Edge Delivery Services antes de combinar los cambios en la rama main
.
Los scripts NPM se pueden ejecutar a través de npm run
, por ejemplo:
# ~/Code/aem-wknd-eds-ue
$ npm run lint
lint:js
lint:css
lint
Corrección automática de los problemas de limpieza
Puede resolver automáticamente los problemas de limpieza, añadiendo los siguientes scripts
al archivo package.json
del proyecto, y se pueden ejecutar a través de npm run
:
# ~/Code/aem-wknd-eds-ue
$ npm run lint:fix
Estos scripts no vienen preconfigurados con la plantilla XWalk del elemento repetitivo de AEM, pero se pueden añadir al archivo package.json
:
table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
---|---|---|
Script NPM | Comando | Descripción |
lint:js:fix |
npm run lint:js -- --fix |
Corrige automáticamente los problemas de limpieza de JavaScript. |
lint:css:fix |
stylelint blocks/**/*.css styles/*.css -- --fix |
Corrige automáticamente los problemas de limpieza de CSS. |
lint:fix |
npm run lint:js:fix && npm run lint:css:fix |
Ejecuta los scripts de corrección JS y CSS para realizar una limpieza rápida. |
Las siguientes entradas de script se pueden añadir a la matriz package.json
scripts
.
code language-json |
---|
|