我在node_modules目录中安装了RequireJS,并且intern.json文件具有:
"node": {
"loader": "requirejs"
},
但是,当我运行“ npx intern”时,它失败并显示:
错误:加载程序脚本requirejs没有注册加载程序回调 在
是否可以让Intern 4使用RequireJS?
答案 0 :(得分:1)
要使用特定的加载程序,Intern需要一个“加载程序”脚本,该脚本实际上将初始化加载程序并使用该脚本处理加载模块。实习生包括用于多个装载程序的装载程序脚本,例如Dojo 1,Dojo和SystemJS。它不包含RequireJS的加载程序脚本,但是您可以相当轻松地添加一个。
RequireJS的简单脚本如下所示:
// your_project/reqjs.js
intern.registerLoader(function(options) {
function initLoader(requirejs) {
// Configure requireJS -- use options passed in through the intern.json
// config, and add anything else
requirejs.config(options);
// This is the function Intern will actually call to load modules
return function(modules) {
return new Promise(function(resolve, reject) {
requirejs(modules, function() {
resolve();
}, function(error) {
reject(error);
});
});
};
};
if (typeof window !== 'undefined') {
return intern
.loadScript('node_modules/requirejs/require.js')
.then(function() {
return initLoader(window.requirejs);
});
} else {
return initLoader(require('requirejs'));
}
});
请注意,Intern并不使用加载程序来实际检索供自己使用的模块(这就是为什么上述resolve
调用不包括已加载模块的原因),它仅使用它们来加载测试套件。套件本身可以正常使用加载程序。
您将在配置中使用脚本
"node": {
"loader": "./reqjs.js"
}