使用模块名称而不是文件名加载模块

时间:2011-04-14 21:03:42

标签: javascript requirejs require requirejs-define

我在两个单独的js文件中有两个'define'。

def1.js和def2.js

define("mydefname1",["file1",...]});

define("mydefname2",["file2",....]});

我有另一个require语句,我检查是否加载了两个定义。

require(['def1','def2'], function(){alert('loaded')});

这很好..

但如果我尝试

require(['mydefname1','mydefname2'], function(){alert('loaded')});, 

它不起作用。

我有没有办法实际使用mydefname1和mydefname2 ..即模块名称加载它们,而不是文件名?

2 个答案:

答案 0 :(得分:0)

据我所知,这是不可能的。我通常做的是格式化我的文件名以包含我的模块名称,所以我可以这样包含它。

对于元类名称Overlay,文件名为class.Overlay.js,我的require / include函数将获取我的模块名称并从中构建文件名。

答案 1 :(得分:0)

据我了解,RequireJS建议您避免手动分配模块名称 - 请参阅此处:http://requirejs.org/docs/api.html#modulename

FWIW,您是否使用过“路径”配置选项?我认为你不能用它来完成你想做的事情,但它可能提供一种可接受的替代方法。见这里:http://requirejs.org/docs/api.html#config

希望它有所帮助!