Как требовать модуль только при его наличии.Реагировать родной - PullRequest
0 голосов
/ 11 декабря 2018

Пример:

let tmp;

try {
  tmp = require('module-name');
} catch(e) {
  return;
}

Я получаю сообщение об ошибке (реагирует на встроенный Metro Bundler):

error: bundling failed: Error: Unable to resolve module `module-name` from ...

Как требовать «имя модуля», только если существует?

1 Ответ

0 голосов
/ 11 декабря 2018

Используйте require.resolve, которое будет возвращать разрешенное имя файла.

function checkModuleAvailability (module) {
  try {
    require.resolve(module);
    return true
  } catch(e) {
    console.log(`${module} not found`);
  }
  return false
}

const moduleAvailable = checkModuleAvailability(MODULE_NAME) // true or false
...