Moduli libreria nelle estensioni web
Un modulo libreria è una parte di codice riutilizzabile fornito da un’estensione ed emesso all’interno della libreria runtime di tag in Adobe Experience Platform. Questa libreria viene quindi eseguita sul sito web del cliente. Ad esempio, un tipo di evento gesture
avrà un modulo libreria che verrà eseguito sul sito web del client e rileverà i movimenti dell’utente.
Il modulo libreria è strutturato come modulo CommonJS. In un modulo CommonJS, sono disponibili le seguenti variabili:
require
È disponibile una funzione require
che consente di accedere a:
- Moduli di base forniti dai tag. È possibile accedere a questi moduli utilizzando
require('@adobe/reactor-name-of-module')
. Per ulteriori informazioni, consulta il documento sui moduli core disponibili. - Altri moduli all’interno dell’estensione. È possibile accedere a qualsiasi modulo dell’estensione tramite il relativo percorso. Il percorso relativo deve iniziare con
./
oppure../
.
Esempio di utilizzo:
var cookie = require('@adobe/reactor-cookie');
cookie.set('foo', 'bar');
module
È disponibile una variabile gratuita denominata module
che consente di esportare l’API del modulo.
Esempio di utilizzo:
module.exports = function(…) { … }
exports
exports-variable
È disponibile una variabile gratuita denominata exports
che consente di esportare l’API del modulo.
Esempio di utilizzo:
exports.sayHello = function(…) { … }
Si tratta di un’alternativa a module.exports
, ma il suo utilizzo è più limitato. Consulta Informazioni su “module.exports” ed “exports” in node.js per una comprendere meglio le differenze tra module.exports
e exports
e le relative avvertenze sull’utilizzo di exports
. In caso di dubbi, utilizza module.exports
anziché exports
.
Esecuzione e caching
Quando viene eseguita la libreria runtime dei tag, i moduli vengono immediatamente “installati” e le relative esportazioni vengono memorizzate nella cache. Nel seguente modulo di esempio:
console.log('runs on startup');
module.exports = function(settings) {
console.log('runs when necessary');
}
runs on startup
verrà registrato immediatamente, mentre runs when necessary
verrà registrato solo dopo che la funzione esportata verrà richiamata dal motore dei tag. Anche se potrebbe non essere necessario per lo scopo del modulo, è possibile trarne vantaggio eseguendo eventuali configurazioni necessarie prima di esportare la funzione.