我正在开发一个与 Chrome 对应的 Firefox 插件。为了消除代码重复,它们将共享一些 JavaScript 库。这些库不是用 Firefox jetpack 模块所期望的 CommonJS 设计编写的。有没有一种好方法可以将共享的 JavaScript 导入并使用到我的 Firefox 模块中?
共享代码最好可以放在我的根目录中的一个目录中,因为共享库有自己丰富的目录结构,我不想把它全部塞进 data 或 lib 目录中。
我正在开发一个与 Chrome 对应的 Firefox 插件。为了消除代码重复,它们将共享一些 JavaScript 库。这些库不是用 Firefox jetpack 模块所期望的 CommonJS 设计编写的。有没有一种好方法可以将共享的 JavaScript 导入并使用到我的 Firefox 模块中?
共享代码最好可以放在我的根目录中的一个目录中,因为共享库有自己丰富的目录结构,我不想把它全部塞进 data 或 lib 目录中。
通过 commonjs 可以轻松加载 JS 文件,您只需将所需的函数作为属性添加到导出对象,例如:
function foo() {}
function bar() {}
if (exports !== void 0) {
exports.foo = foo;
exports.bar = bar;
}
如果您正在构建一个基于 xul 的插件并且您有一个想要在其中使用的库,您只需将它放在您的内容目录中并链接到 xul 文件中的库文件。
- content\
- yourAddon.xul
- yourAddon.js
- yourLibDirectory\
- libfile1.js
然后,在 yourAddon.xul 上,将其包含在标题中:
<script type="application/x-javascript" src="chrome://yourExtension/content/yourAddon.js"/>
<script type="application/x-javascript" src="chrome://yourExtension/content/yourLibDirectory/libfile1.js"/>
如果您使用 addon-sdk 执行此操作,我没有多大帮助。:)