Как получить собственный распознаватель веб-пакетов для передачи несуществующих файлов загрузчикам? - PullRequest
2 голосов
/ 28 февраля 2020

У нас есть куча видеофайлов, которые были развернуты с кодом веб-пакета (хранятся в LFS)

Мы переместили их в CDN и хотим использовать загрузчик файлов веб-пакета с publicPath для их преобразования на абсолютные URL во время сборки.

Webf barfs, потому что файл не существует. Это моя попытка написать плагин для разрешения, чтобы пропустить их, но я все еще получаю файл не найден ошибок .... Что я пропустил?

var VideoResolver = {
  apply: function(resolver) {
    const target = resolver.ensureHook("resolved");

    resolver.getHook("module").tapAsync("VideoResolver", (request, resolveContext, callback) => {
      if (request.request.startsWith("assets/videos") || request.request.endsWith(".mp4")) {

        const resolved =  {
          path: request.request,
          request: request.request,
          query: request.query,
          resolveToContext:{},
          directory: !request.request.endsWith(".mp4")
        };
        console.log(resolved)
        resolver.doResolve(
          target,
          resolved,
          `skipping video resolve for ${request.request}`,
          resolveContext,
          callback
        );
      } else {
        callback();
      }
    });
  },
};

Редактировать: Похоже, NormalModule и LoaderRunner читают содержимое файлов и передают его загрузчикам (которые кажутся плохо названными :)). Я не вижу простого способа переопределить это поведение

...