Módulos de biblioteca em extensões da Web
Um módulo de biblioteca consiste em código reutilizável fornecido por uma extensão emitida na biblioteca de tempo de execução de tag na Adobe Experience Platform. Essa biblioteca é executada no site do cliente. Por exemplo, um tipo de evento gesture
terá um módulo de biblioteca que será executado no site do cliente e detectará os gestos do usuário.
O módulo da biblioteca está estruturado como um módulo CommonJS. Em um módulo CommonJS, as seguintes variáveis estão disponíveis para uso:
require
Uma função require
está disponível para você acessar:
- Módulos principais fornecidos por tags. Esses módulos podem ser acessados usando
require('@adobe/reactor-name-of-module')
. Consulte o documento nos módulos principais disponíveis para obter mais informações. - Outros módulos na sua extensão. Qualquer módulo na sua extensão pode ser acessado por um caminho relativo. O caminho relativo deve começar com
./
ou../
.
Exemplo de uso:
var cookie = require('@adobe/reactor-cookie');
cookie.set('foo', 'bar');
module
Uma variável livre chamada module
está disponível e permite exportar a API do módulo.
Exemplo de uso:
module.exports = function(…) { … }
exports
exports-variable
Uma variável livre chamada exports
está disponível e permite exportar a API do módulo.
Exemplo de uso:
exports.sayHello = function(…) { … }
É uma alternativa para module.exports
, mas tem uso mais limitado. Leia Entender module.exports e exportações em node.js para compreender melhor as diferenças entre module.exports
e exports
e as limitações relacionadas ao uso de exports
. Na dúvida, torne sua vida mais fácil e use module.exports
em vez de exports
.
Execução e armazenamento em cache
Quando a biblioteca de tempo de execução de tag for executada, os módulos serão "instalados" imediatamente e suas exportações serão armazenadas em cache. Presumindo o seguinte módulo:
console.log('runs on startup');
module.exports = function(settings) {
console.log('runs when necessary');
}
runs on startup
serão registrados imediatamente, enquanto runs when necessary
serão registrados somente depois que a função exportada for chamada pelo mecanismo de tag. Embora possa ser desnecessário para a finalidade de seu módulo específico, você pode aproveitar isso executando qualquer configuração necessária antes de exportar a função.