Web 扩展中的库模块

重要

本文档介绍 Web 扩展的库模块格式。如果您正在开发 Edge 扩展,请另外参阅关于格式化 Edge 扩展模块的指南。

库模块是由 Adobe Experience Platform Launch 运行时库(在客户端网站上运行的库)内部发出的扩展提供的一段可重用代码。例如,gesture 事件类型具有将在客户端网站上运行的库模块,并且可检测用户手势。

库模块的结构为 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 的替代方法,但其用法受到更多限制。请阅读了解 node.js 中的 module.exports 和 exports,以更好地了解 module.exportsexports 之间的区别,以及使用 exports 的相关注意事项。如有疑问,请简化操作并使用 module.exports 而不是使用 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 引擎调用导出的函数后才被记录。虽然这对于特定模块而言可能是不必要的,但您可以通过在导出函数之前执行任何必要的设置来利用此功能。

On this page

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now