функция require() с параметром объекта?

#javascript #node.js

#javascript #node.js

Вопрос:

Я смотрю на функцию require(), которая выглядит следующим образом, и я понятия не имею, что она делает. Похоже, что он получает массив файлов и создает строку из нескольких блоков try-catch с интерполированными именами модулей, но я немного не разбираюсь в специфике.

 require('./modules/**/index.js', {mode: (base, files) => {
    return files.map(module => {
        return `
            try {
                require('${module}');
            } catch (e) {
                debug.error('Failed to ${module}', e.stack);
            }
        `;
    }).join(' ');
}});
  

Я искал параметры в документации узла (https://nodejs.org/api/modules.html#modules_require_id ) и ничего не смог найти. У кого-нибудь есть идеи?

Комментарии:

1. Вы уверены, что это родной require ? Может быть, есть что-то подобное раньше const require = require('my-custom-require') ?

2. Кажется, это просто обычный require() . Вот полный файл на случай, если я что-то упустил: github.com/night/betterttv/blob/master/src/index.js

3. Да, отсутствует 😊 Это require-globify пакет, установленный как зависимость в package.json и используемый в gulpfile.js

Ответ №1:

Это не обычное требование.

Это require-globify пакет. Это позволяет запрашивать глобальные выражения. mode ключ второго параметра определяет, как обрабатывать вызовы.