Веб-пакет: динамически загружать модули в веб-работников
Поэтому я хочу загружать некоторые модули динамически, когда они требуются веб-работнику, но это дает мне ошибку, что они не могут быть загружены. Мой код выглядит так.
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/"
}
}
}