在一个registerSuite Intern.js里面不能要求AMD模块

我有一些我想要的代码:

define(function(require) { return stuff { my_func: function() { return 1; } }; }); 

我试图要求它在一个registerSuite里面。

 registerSuite(function() { var navigation = require('path/to/navigation.js'); 'my test': function() { return navigation.my_func(); } }); 

这给我一个错误的“my_func()”没有在导航中find。 我不得不将“包含”代码转换为一个类,并实例化一个对象来使其工作。 请求方式不工作有一个原因吗?

加载AMD模块时,AMD requirefunction需要模块标识符,而不是文件path,因此您可以使用:

 var navigation = require('something/navigation'); 

其中“东西”是包含你的模块的包,而模块名不是以“.js”结尾的。 你也可以使用一个相对的标识符

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