不能在 registerSuite 中要求 AMD 模块 Intern.js

Cannot require AMD module inside a registerSuite Intern.js

我有一些代码需要:

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()" 在导航中找不到。我必须将 "include" 代码转换为 class 并实例化一个对象以使其工作。 require-way 不起作用的原因是什么?

加载 AMD 模块时,AMD require 函数需要模块标识符,而不是文件路径,因此您可以使用:

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

其中 'something' 是包含您的模块的包,并且模块名称不以“.js”结尾。您还可以使用相对标识符,例如

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