【发布时间】:2015-05-01 09:05:50
【问题描述】:
我有一个内部使用 AMD 模块 (requirejs) 的库。我想从这些模块中返回一些方法作为公共 API。目前我正在使用同步 require 调用来执行此操作。
例如:
// library
define("a", function(){
define("b", ['somedep','anotherdep'], function(dep, dep2){
return { something: "x"};
});
return {
b: require('b').something
};
});
// then to use it.
require(['a'], function(a){
});
但是这会产生错误。 错误:尚未为上下文加载模块名称“b”:_。使用 require([])
我不想在外部公开内部定义调用(通过展平所有定义),因为我不希望库使用者能够使用这些内部模块。
【问题讨论】:
-
为什么需要在模块中定义模块?你能把那些分开吗?我认为
requirejs不应该那样做 -
这个库非常大,将它分成模块意味着它更容易处理。
-
你可以用不同的方式做到这一点。检查我的答案:)
标签: javascript requirejs