【发布时间】:2022-01-28 15:17:15
【问题描述】:
monaco-editor v0.31.1
我关注this gist,代码如下
<script lang="ts">
import type monaco from 'monaco-editor';
import { onMount } from 'svelte';
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';
let divEl: HTMLDivElement = null;
let editor: monaco.editor.IStandaloneCodeEditor;
let Monaco;
onMount(async () => {
// @ts-ignore
self.MonacoEnvironment = {
getWorker: function (_moduleId: any, label: string) {
if (label === 'json') {
return new jsonWorker();
}
if (label === 'css' || label === 'scss' || label === 'less') {
return new cssWorker();
}
if (label === 'html' || label === 'handlebars' || label === 'razor') {
return new htmlWorker();
}
if (label === 'typescript' || label === 'javascript') {
return new tsWorker();
}
return new editorWorker();
}
};
Monaco = await import('monaco-editor');
editor = Monaco.editor.create(divEl, {
value: ['function x() {', '\tconsole.log("Hello world!");', '}'].join('\n'),
language: 'javascript'
});
return () => {
editor.dispose();
};
});
</script>
<div bind:this={divEl} class="h-screen" />
编译失败,说找不到工作文件。
[!] 错误:无法加载 C:\projects\svelte\node_modules\monaco-editor\esm\vs\editor\editor.worker.js?worker (由 src\MonacoEditor.svelte 导入):ENOENT:没有这样的文件或 目录,打开 'C:\projects\svelte\node_modules\monaco-editor\esm\vs\editor\editor.worker.js?worker'
其实editor.worker.js存在于具体路径。如何在 svelte 中导入 monaco 编辑器?
提前致谢
【问题讨论】:
标签: svelte monaco-editor