使用 Draft.js 的 React 和 Electron:“未定义全局”

IT技术 javascript reactjs electron draftjs
2021-05-03 11:19:11

这里提出了一个类似的问题:Uncaught ReferenceError: global is not defined at Object../node_modules/fbjs/lib/setImmediate.js

关于这个问题有两个答案,似乎都相信他们可以解决这个问题。我的问题是——没有给出如何实现答案的解释。

基本上,我有一个包含 React 的电子应用程序,一切正常,直到我尝试将 Draft.js 实施到项目中。我收到以下错误:

app.js:19805 Uncaught ReferenceError: global is not defined

日志指向我在 babel/webpack-compiled app.js 中的一行:

module.exports = global.setImmediate;

导致它的具体事情缩小到一个导入语句:

import {Editor, EditorState} from 'draft-js';

上面链接问题中的答案之一是在窗口上添加一个全局对象:

(window as any).global = window;

我想不通的是……这是什么意思?在我的 main.js 文件中,我在其中创建窗口(它只是整个应用程序的一个窗口)尝试执行此操作似乎无论我在哪里尝试执行此操作都会引发错误,而且我似乎找不到任何参考完全定义“全局”。我的意思是在哪里定义“全球”?

1个回答

global 在 tc39 提案中更名为 globalThis https://github.com/facebook/fbjs/issues/290

只需将此添加到 index.html这就是我修复它的方式

<script>
      const global = globalThis;
</script>