Typescript 如何运行CodeMirror“;“运行模式”;在没有文档的Web Worker中是否未定义?

Typescript 如何运行CodeMirror“;“运行模式”;在没有文档的Web Worker中是否未定义?,typescript,web-worker,codemirror,Typescript,Web Worker,Codemirror,我有一个(typescript)编译器在Web Worker中运行,我需要它来解析脚本中文本值的源代码。我一直在使用CodeMirror.runMode进行此操作,它工作正常,但在Web Worker中加载CodeMirror会产生错误 Uncaught ReferenceError: document is not defined 如何加载CodeMirror来解析Web Worker中的代码?以下是一个可行的解决方案: CodeMirror中有一个“runmode standalone”脚

我有一个(typescript)编译器在Web Worker中运行,我需要它来解析脚本中文本值的源代码。我一直在使用CodeMirror.runMode进行此操作,它工作正常,但在Web Worker中加载CodeMirror会产生错误

Uncaught ReferenceError: document is not defined

如何加载CodeMirror来解析Web Worker中的代码?

以下是一个可行的解决方案:

CodeMirror中有一个“runmode standalone”脚本,它正是我所需要的。它可以工作,但我必须对一些文件进行一些热修复

加载独立运行模式脚本:

// @ts-ignore
import CM = require('codemirror/addon/runmode/runmode-standalone')
// JS mode
import 'codemirror/mode/javascript/javascript'
热修复程序(使用修补程序包保存项目中的更改):

请注意,此解决方案适用于Web Worker,并在浏览器中使用完整的CodeMirror
// Start of node_modules/codemirror/lib/codemirror.js

// This avoids loading CodeMirror if it is already loaded through standalone
(function (global, factory) {
  if (self.CodeMirror) {
    factory = function() { return self.CodeMirror }
  }
// Start of node_modules/codemirror/addon/runmode/runmode-standalone.js

self.CodeMirror = {} // instead of window.CodeMirror