Javascript Can';t在Firefox加载项SDK中使用require()导入自定义模块

Javascript Can';t在Firefox加载项SDK中使用require()导入自定义模块,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,下面是一个简化的代码示例,用于说明我正在做的事情 foo.js(在lib目录中): main.js: var foo = require("foo"); exports.main = function(options, callbacks) { foo.bar(); } 命令: 所以基本上,我似乎无法对我导入的模块做任何事情。我做错什么了吗?我尝试过用几种不同的方式格式化foo()函数,但它们似乎都无能为力 谢谢 试试看: var foo = exports.foo = functio

下面是一个简化的代码示例,用于说明我正在做的事情

foo.js(在lib目录中):

main.js:

var foo = require("foo");
exports.main = function(options, callbacks) {
    foo.bar();
}
命令:

所以基本上,我似乎无法对我导入的模块做任何事情。我做错什么了吗?我尝试过用几种不同的方式格式化foo()函数,但它们似乎都无能为力

谢谢

试试看:

var foo = exports.foo = function foo() {
};

foo.bar = function() {
    console.log("foobar!");
};

您的示例在任何上下文中都不起作用。

函数
require()
的结果本质上是模块的
导出
变量-并且您没有定义
导出.bar
。因此,要么在
main.js
中调用
foo.foo.bar()
,要么导入的模块略有不同:

var {foo} = require("foo");
这与:

var foo = require("foo").foo;
另外,正如erikvold在他的回答中所指出的,您并没有真正定义
exports.foo.bar

var {foo} = require("foo");
var foo = require("foo").foo;