Чтобы использовать определенный загрузчик, Intern нужен скрипт 'loader', который фактически инициализирует загрузчик и обрабатывает загрузочные модули вместе с ним.Стажер включает в себя скрипты загрузчиков для нескольких загрузчиков, таких как 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"
}