Проверьте эту часть их документа: если загружаемый модуль (foo
здесь) найден RequireJS (т.е. его конфигурация позволяет ему найти модуль), то этот модуль должен быть объявлено использование define
вместо Node's exports
.
Я только что попробовал это, который работает:
структура каталогов
test/
index.js
foo.js
index.js
(function() {
const requirejs = require('requirejs');
requirejs.config({
baseUrl: __dirname,
nodeRequire:require
});
requirejs(['foo'], (foo) => {
console.log('loaded!', foo, foo());
});
})();
foo.js
(это интересная часть)
define(function() {
return function foo() {
return 'fooResult';
}
});
Использование module.exports = ...
дало мне ошибку, которая у вас есть.
Однако этот RequireJS API не «загружается» встроенным Node require
, поэтому необходима точная конфигурация, которая отражает четкое разделение между модулями, необходимыми для Node ( CommonJS API ) и RequireJS модули ( AMD API ). (На самом деле вы можете проверить всю страницу «Почему AMD?» , которая очень поможет вам в работе с RequireJS.)