Typescript 如何运行CodeMirror“;“运行模式”;在没有文档的Web Worker中是否未定义?
我有一个(typescript)编译器在Web Worker中运行,我需要它来解析脚本中文本值的源代码。我一直在使用CodeMirror.runMode进行此操作,它工作正常,但在Web Worker中加载CodeMirror会产生错误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”脚
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