#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
ключ второго параметра определяет, как обрабатывать вызовы.