веб-пакет требует выражения отсутствующих модулей - PullRequest
1 голос
/ 10 апреля 2020

Из документации веб-пакета , когда во время компиляции неизвестно выражение require, оно должно сгенерировать модуль контекста и включить все модули, которые могут соответствовать выражению.

const handlers = {};

for (const name of Object.keys(SomeObject)) {
  try {
    handlers[name] = require(`./${name}.js`);
  } catch {} // eslint-disable-line no-empty
}

module.exports = handlers;

однако, что я получаю, это `

const handlers = {};

for (const name of Object.keys(SomeObject)) {
  try {
    handlers[name] = require(`./${name}.js`);
  } catch {} // eslint-disable-line no-empty
}

module.exports = handlers;

, однако, что я на самом деле получаю, это ошибка Cannot find module ./\u001a.js

, но если я превращаю ее в динамическое c выражение для импорта, то это работает

const handlers = {};

for (const name of Object.keys(SomeObject)) {
  try {
    import(`./${name}.js`).then(m => { handler[name] = m; });
  } catch {} // eslint-disable-line no-empty
}

module.exports = handlers;

Но я бы предпочел не делать этого, так как код, вызывающий проблемы, происходит из некоторого пакета узла

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