Firefox SDK需要常规的JS文件

时间:2014-12-16 14:47:11

标签: firefox firefox-addon firefox-addon-sdk

有没有办法在Firefox SDK后台脚本中包含常规javascript文件? 如果我只有一个定义某些变量的脚本文件,请包含它并访问后台脚本中的变量。

到目前为止,我的理解是它们必须是CommonJS模块。我正在移植一个Chrome Ext,它也使用了许多常用代码和移动应用程序等,我不想尝试转换为CommonJS模块。

这可能吗?

1 个答案:

答案 0 :(得分:3)

  

到目前为止我的理解是它们必须是CommonJS模块。

这是正确的。

如果您想要包含已经以某种方式构建的标准JS文件,您必须将它们注入page worker,这将

  

创建一个永久的,不可见的页面并访问其DOM,

然后分别使用端口发送和输出所需的几个变量,正如我解释in your last question

或者您可以使用某种文件串联(如果您缩小文件,这应该已经发生),然后将此新JS文件保存在lib文件夹中,并要求/导出这些相同的变量。

这些方法只需要您从已有的文件系统中输入/输出外部所需的变量,因此将每个文件转换为commonJS并不会那么痛苦。


注意:我使用Angular作为我的webapp,并且已经使用了一些模块,如此

var syncHelper = function() {

  this.filter = function(objects, prop) {
    // do stuff
  }

  this.consolidate = function(local, server, id) {
    //more stuff
  }
}

// app is my angular webapp var
if (typeof app==='undefined') syncHelper.call(exports);
else app.service('syncHelper', syncHelper);