摩纳哥编辑:我需要什么才能访问打字稿工作人员?

问题描述 投票:0回答:1

在我的应用程序中,我使用摩纳哥编辑器作为游乐场环境,用户可以在其中编辑和运行打字稿代码。

这曾经在 v0.40.0 之前的摩纳哥编辑器中工作,但自从升级到 v0.41.0 后,我只是收到一条错误消息“TypeScript 未注册!”。我需要做什么才能“注册”TypeScript?

要运行代码,我使用如下编辑器操作:

editorInstance.addAction({
    id: 'compile-and-run',
    label: 'Compile and run',
    keybindings: [KeyMod.CtrlCmd | KeyCode.Enter],
    async run() {
      const model = editorInstance.getModel();

      if (!model) {
        console.error('compile-and-run: no editor-model found.');
        return;
      }
      
      const worker = await languages.typescript.getTypeScriptWorker();
      const proxy = await worker(model.uri);

      const {outputFiles} = await proxy.getEmitOutput(model.uri.toString());
      const jsCode = outputFiles[0].text;

      await runJsCode(jsCode);
    }
  });
typescript monaco-editor
1个回答
0
投票

您可以使用打字稿工作者来编译您的代码。我什至在没有编辑的情况下这样做。要修复注册,您需要以下代码。

  private initDone = false;
  private ensureTypeScriptRegistration() {
    if (!this.initDone) {
      // fix "TypeScript not registered!" when skipping the creation of the editor
      const editor = monaco.editor.create(document.createElement('div'));
      editor.dispose();
      this.initDone = true;
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.