Módulos compartidos en extensiones web

NOTE
Adobe Experience Platform Launch se ha convertido en un conjunto de tecnologías de recopilación de datos en Adobe Experience Platform. Como resultado, se han implementado varios cambios terminológicos en la documentación del producto. Consulte el siguiente documento para obtener una referencia consolidada de los cambios terminológicos.

Un módulo compartido es un mecanismo mediante el cual puede comunicarse con otras extensiones. Por ejemplo, la extensión A puede cargar un fragmento de datos asincrónicamente y ponerlo a disposición de la extensión B mediante una promesa.

En las implementaciones de JavaScript, todas las instancias de los módulos compartidos se crean mediante el método getSharedModule que proporciona la variable gratuita turbine.

Los módulos compartidos se incluyen en las bibliotecas de etiquetas incluso cuando nunca se les llama desde otras extensiones. Para no incrementar el tamaño de la biblioteca de manera innecesaria, debe tener cuidado con lo que expone como módulo compartido.

Los módulos compartidos no tienen componente de vista.

Al desarrollar su propia extensión de etiqueta, puede definir los módulos compartidos que desea proporcionar. Por ejemplo, puede crear un módulo que cargue un ID de usuario de forma asíncrona y que, a continuación, comparta el ID de usuario con cualquier otra extensión mediante el objeto promise:

var userIdPromise = new Promise(/* load user ID, then resolve promise */);
module.exports = userIdPromise;

En el manifiesto de extensión, debe proporcionar un nombre para este módulo compartido. Si le asigna el nombre user-id-promise, otra extensión diferente podría acceder a este módulo compartido como se indica a continuación:

var userIdPromise = turbine.getSharedModule('user-extension', 'user-id-promise');

Los módulos compartidos pueden ser cualquier cosa que normalmente puede exportar desde un módulo CommonJS (como funciones, objetos, cadenas, números o valores booleanos).

recommendation-more-help
12b4e4a9-5028-4d88-8ce6-64a580811743