Web 拡張機能のライブラリモジュール
ライブラリモジュールは、拡張機能によって提供される再利用可能なコードで、Adobe Experience Platform のタグのランタイムライブラリ内で発行されます。 このライブラリは、クライアントの Web サイト上で実行されます。 例えば、gesture
イベントタイプには、クライアントの Web サイト上で実行され、ユーザーのジェスチャーを検出するライブラリモジュールがあります。
ライブラリモジュールは、CommonJS モジュールとして構造化されています。CommonJS モジュール内では、次の変数を使用できます。
require
require
関数を使用して、次のモジュールにアクセスできます。
- タグで提供されるコアモジュール。 これらのモジュールには、
require('@adobe/reactor-name-of-module')
を使ってアクセスできます。詳しくは、利用可能な コアモジュール のドキュメントを参照してください。 - 拡張機能内の他のモジュール。拡張機能内のモジュールには、相対パスを介してアクセスできます。相対パスの先頭には
./
または../
が必要です。
使用例:
var cookie = require('@adobe/reactor-cookie');
cookie.set('foo', 'bar');
module
module
という名前の自由変数を使用できます。この変数を使って、モジュールの API をエクスポートできます。
使用例:
module.exports = function(…) { … }
exports
exports-variable
exports
という名前の自由変数を使用できます。この変数を使って、モジュールの API をエクスポートできます。
使用例:
exports.sayHello = function(…) { … }
これは module.exports
の代わりに使用できますが、使い方は限られています。module.exports
と exports
の違い、および exports
の使用に関する注意事項についての詳細は、node.js の module.exports と exports についてのページを参照してください。不確かな場合は、exports
ではなく module.exports
を使用してください。
実行とキャッシュ
タグのランタイムライブラリが実行されると、モジュールが直ちに「インストール」され、書き出しがキャッシュされます。次のようなモジュールであるとします。
console.log('runs on startup');
module.exports = function(settings) {
console.log('runs when necessary');
}
runs on startup
が即座に記録される一方、runs when necessary
は、書き出された関数がタグエンジンによって呼び出された場合にのみ記録されます。モジュールの目的によっては不要な場合がありますが、関数をエクスポートする前に必要な設定をおこなうことで、この機能を活用できます。