Глоб не находит файлы правильно - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть библиотека Typescript, которую я пишу, и она использует глобус для поиска файлов в данном каталоге.

Вот функция загрузки

public async loadEvents(): Promise<any> {
        console.log(process.cwd());
        const a = Glob.sync(`${this.eventDir}**/*.js`);
        console.log(a);
        for (const b of a) {
            const c = await import(b)
                .then( (event: Event) => {
                    this.Events.set(event.name!, event);
                    console.log(`[LOAD EVENTS] [LOADED] : ${event.name}, ${event}`);
                })
                .catch( (err) => {
                    console.log(`[LOAD EVENTS] [ERROR] : `, err);
                });
        }
    }

Когда я запускаю функцию Я вижу: []

Вот вывод дерева

C:.
│   config.js
│   index.js
│   tsconfig.tsbuildinfo
│
├───commands
│   ├───admin
│   │       reload.js
│   │       restart.js
│   │
│   └───misc
│           test.js
│
└───events
    ├───discord
    │       message.js
    │
    └───self
            message.js

У меня есть идентичная функция для загрузки из команд

    public async loadCommands(): Promise<any> {
        const a = Glob.sync(`${this.commandsDir}**/*.js`);
        console.log(a);
        for (const b of a) {
            const c = await import(b)
                .then( (command: Command) => {
                    this.Commands.set(command.cmdName, command);
                    console.log(`[LOAD EVENTS] [LOADED] : ${command.cmdName}, ${command}`);
                })
                .catch( (err) => {
                    console.log(`[LOAD COMMANDS] [ERROR] : `, err);
                });
        }
    }

, которая возвращает массив файлов в папке команд. Я не понимаю, почему функция событий не показывает файлы, а функция команд показывает это.

eventsDir = './events/';

commandsDir =' ./commands/ ';

вывод

PS C:\Users\alexa\Documents\GitHub\bubo_re\build> node .
C:\Users\alexa\Documents\GitHub\bubo_re\build
[]

1 Ответ

0 голосов
/ 09 апреля 2020

Текущий рабочий каталог был проблемой. Добавив

this.eventsDir = Path.resolve(this.eventsDir);
this.commandsDir = Path.resolve(this.commandsDir);

Загрузчик теперь работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...