【问题标题】:Load multiple JS files in Firefox Extension在 Firefox 扩展中加载多个 JS 文件
【发布时间】:2016-01-16 19:48:29
【问题描述】:

我正在使用 JPM 为 Firefox 创建一个扩展。在 package.json 文件中,我们有这一行作为入口点...

"main": "index.js"

如何更改它,或者我还能做什么,以在我的扩展中包含更多 JS 文件?我基本上是在移植一个 Chrome 扩展程序,其中有 2-3 个 JS 文件。

我尝试了以下方法,但没有成功。

"main": ["index.js", "file2.js"]

"main": [{"index.js", "file2.js"}]

"main": "index.js,file2.js"

为了澄清一点,这两个文件都是为了在后台运行而不是内容脚本。

【问题讨论】:

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


    【解决方案1】:

    据我所知,通过package.json文件你只能指定一个main.jsscript。

    正如developers' documentation 所说:

    您至少会拥有一个由名为“main.js”的脚本实现的模块,但您可以在 lib 中包含其他模块,并使用 require() 函数导入它们。要了解如何实现和导入您自己的模块,请参阅Implementing Reusable Modules 上的教程。

    因此,您可以在 lib 目录中创建您自己的库,假设 test.js 遵循文档并包含在您的 main.js 中。看一个这样的例子:

    test.js:

    vat test = function() {console.log("I'm a module");};
    exports.test = test;
    

    在你的 main.js 中:

    var test = require('./test');
    test.test();
    

    【讨论】:

    • 实际上,我已经找到了 mozIJSSubScriptLoader,但是对于其他替代方案,我仍然保留了这个问题。这是另一个。
    【解决方案2】:

    我遇到了同样的问题。如果您将“file2.js”放在“data”目录中,则可以添加该行 var x = require('./data/file2.js'); 在“main.js”文件中。然后像这样调用你的函数: x.yourFunc(); 请务必在 file2.js 中导出您的函数,并为每个函数分配一个 exports 变量: export.func1 = function() { return yourFunc(); }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多