您好。
我已经有一段时间了,并且无法弄清楚为什么我的动态模块加载器无法正确加载文件。它只是为每个文件返回一个空对象。
function loadCommands() {
require('fs').readdirSync(require('path').join(__dirname, 'commands')).forEach(file => {
let commandName = file.substring(0, file.length - 3); // this removes the .js extension off of the file.
commands[commandName] = require('./commands/' + file);
});
}
此代码应加载./commands目录中的每个文件,并将其放在名为commands的对象中。
require()函数返回一个空对象。
示例命令文件包含以下内容:
const Command = require('../Command');
class Ban extends Command {
constructor(options) {
this.description = 'Bans a user.';
}
execute() {
}
}
module.exports = Ban;
命令包含以下内容:
class Command {
constructor() {
this.description = 'unknown';
}
execute() {
}
}
module.exports = Command;
如果我执行命令[" ban"],它将返回一个空对象而不是我期望的类。
我对这里发生的事情感到很困惑,因为根本没有循环依赖。
如果有人可以帮助我,我们将不胜感激。
感谢。