Web 拡張機能のライブラリモジュール

重要

このドキュメントでは、Web 拡張機能のライブラリモジュールの形式について説明します。エッジ拡張機能を開発する場合は、代わりにエッジ拡張機能モジュールのフォーマット に関するガイドを参照してください。

ライブラリモジュールは、拡張機能によって提供される再利用可能なコードで、Adobe Experience Platform Launch ランタイムライブラリ(クライアントの Web サイト上で実行されるライブラリ)内で発行されます。例えば、gesture イベントタイプには、クライアントの Web サイト上で実行され、ユーザーのジェスチャーを検出するライブラリモジュールがあります。

ライブラリモジュールは、CommonJS モジュールとして構造化されています。CommonJS モジュール内では、次の変数を使用できます。

require

require 関数を使用して、次のモジュールにアクセスできます。

  1. Platform Launch で提供されるコアモジュール。これらのモジュールには、require('@adobe/reactor-name-of-module') を使ってアクセスできます。詳しくは、利用可能なコアモジュールのドキュメントを参照してください。
  2. 拡張機能内の他のモジュール。拡張機能内のモジュールには、相対パスを介してアクセスできます。相対パスの先頭には ./ または ../ が必要です。

使用例:

var cookie = require('@adobe/reactor-cookie');
cookie.set('foo', 'bar');

module

module という名前の自由変数を使用できます。この変数を使って、モジュールの API をエクスポートできます。

使用例:

module.exports = function(…) { … }

exports

exports という名前の自由変数を使用できます。この変数を使って、モジュールの API をエクスポートできます。

使用例:

exports.sayHello = function(…) { … }

これは module.exports の代わりに使用できますが、使い方は限られています。module.exportsexports の違い、および exports の使用に関する注意事項についての詳細は、node.js の module.exports と exports についてのページを参照してください。不確かな場合は、exports ではなく module.exports を使用してください。

実行とキャッシュ

Platform Launch ランタイムライブラリが実行されると、モジュールが直ちに「インストール」され、エクスポートがキャッシュされます。次のようなモジュールであるとします。

console.log('runs on startup');

module.exports = function(settings) {
  console.log('runs when necessary');
}

runs on startup が即座に記録される一方、runs when necessary は、エクスポートされた関数が Platform Launch エンジンによって呼び出された場合にのみ記録されます。モジュールの目的によっては不要な場合がありますが、関数をエクスポートする前に必要な設定をおこなうことで、この機能を活用できます。

このページ