首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Svetle中使用摩纳哥编辑器

在Svetle中使用摩纳哥编辑器
EN

Stack Overflow用户
提问于 2022-01-20 04:04:38
回答 1查看 1.2K关注 0票数 1

摩纳哥-编辑v0.31.1

我遵循的要点,代码在下面

代码语言:javascript
运行
复制
<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" />

它在compiliation上失败,说找不到工作文件。

好了!错误:无法加载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导入摩纳哥编辑器?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-28 07:17:15

我只是用了那个确切的要旨,而且效果很好。以下是我的步骤:

  1. 跟随这些“开始”步骤创建一个新的SvelteKit应用程序
  • 注意:由于这个gist使用TypeScript (<script lang="ts">),您应该对“uses?”回答“是?”问什么时候搭建项目脚手架。我怀疑您当前的项目可能不是为TypeScript设置的,这可能与您所看到的错误有关。
  1. 安装monaco-editornpm i monaco-editor
  2. src/routes/index.svelte的内容替换为要点码
  3. 构建应用程序:npm run build

这很好,但是实际上我通常在调试模式下运行,所以我在项目文件夹中打开VSCode,然后:

  1. 在VSCode中,转到终端并启动调试器:npm run dev
  2. 启动调试器:按F5 (或运行@ Start调试),选择Chrome
  3. 弹出新的launch.json;编辑url以指向默认的调试地址:"url": "http://localhost:3000",
  4. F5在调试模式下再次在浏览器中运行。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70780678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档