Встраивайте собственный редактор Monaco в MDX-файлы веб-сайта Docusaurus - PullRequest
1 голос
/ 06 мая 2020

У меня есть веб-сайт, созданный с использованием Docusaurus 2 .

Теперь я хочу встроить Monaco Editor на одну страницу, и я зарегистрирую язык для тот редактор из Монако. Я могу добиться этого с помощью react-monaco-editor, monaco-languageclient и vscode-languageserver на новом веб-сайте React, но я не знаю, как добавить это в Docusaurus.

Сначала я добавил эти пакеты в package.json на моем веб-сайте Docusaurus, затем я попытался создать компонент App, чтобы добавить <App /> на страницу Docusaurus.

В одном файле для компонента у меня есть:

import MonacoEditor from 'react-monaco-editor';
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';

В другом файле для компонента у меня есть:

import { MonacoToProtocolConverter, ProtocolToMonacoConverter } from 'monaco-languageclient/lib/monaco-converter';
import * as monaco from 'monaco-editor';
import { TextDocument } from "vscode-languageserver";

Затем я получил

./node_modules/monaco-editor/esm/vs/base/browser/ui/codiconLabel/codicon/codicon.css
ModuleParseError: Module parse failed: Unexpected character '' (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)

и

./node_modules/vscode-languageserver/lib/files.js
Module not found: Can't resolve 'child_process' in '/Users/chengtie/Startup/PRODSERVER/10StudioWebsite/newWebsite/node_modules/vscode-languageserver/lib'

enter image description here

Кто-нибудь знает что сделать, чтобы заработало?

1 Ответ

2 голосов
/ 06 мая 2020

Похоже, проблема здесь в том, что CSS не может быть загружен через webpack. Вам нужно будет добавить CSS загрузчиков для webpack через плагины.

Вы можете попробовать обратиться к этому Pull Request на веб-сайте Hermes , который добавляет редактор Monaco на веб-сайт, и вы можете попробовать редактор, нажав «Playground».

Использование monaco-editor-webpack-plugin здесь может быть лучше, потому что это помогает вам добавить необходимые загрузчики, такие как CSS загрузчик, который отсутствует в вашей текущей настройке.

...