Веб-пакет: динамически загружать модули в веб-работников

Поэтому я хочу загружать некоторые модули динамически, когда они требуются веб-работнику, но это дает мне ошибку, что они не могут быть загружены. Мой код выглядит так.

import prettier from "prettier/standalone";

const prettierParsers = {
  css: "postcss",
  javascript: "babel",
  jsx: "babel",
  svg: "html",
  xml: "html",
  typescript: "typescript"
};

const getPlugin = {
  babel: () => import("prettier/parser-babylon"),
  html: () => import("prettier/parser-html"),
  postcss: () => import("prettier/parser-postcss"),
  graphql: () => import("prettier/parser-graphql"),
  markdown: () => import("prettier/parser-markdown"),
  yaml: () => import("prettier/parser-yaml"),
  flow: () => import("prettier/parser-flow"),
  typescript: () => import("prettier/parser-typescript")
};

export async function prettify(language: string, value: string) {
  let result;

  if (language === "json") {
    result = JSON.stringify(JSON.parse(value), null, 2);
  } else {
    const plugin = await getPlugin[prettierParsers[language] || language]();

    result = prettier.format(value, {
      parser: prettierParsers[language] || language,
      plugins: [plugin]
    });
  }

  return result;
}

Что-то я делаю не так? Я использую worker-loader со следующим конфигом в next.js.

{
      test: /\.worker\.ts/,
      use: {
        loader: "worker-loader",
        options: {
          name: "static/[hash].worker.js",
          publicPath: "/_next/"
        }
      }
    }

0 ответов

Другие вопросы по тегам