有没有办法在Firefox SDK后台脚本中包含常规javascript文件? 如果我只有一个定义某些变量的脚本文件,请包含它并访问后台脚本中的变量。
到目前为止,我的理解是它们必须是CommonJS模块。我正在移植一个Chrome Ext,它也使用了许多常用代码和移动应用程序等,我不想尝试转换为CommonJS模块。
这可能吗?
答案 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);