我正在为 Overwolf 开发一个应用程序http://developers.overwolf.com/documentation/sdk/overwolf/
该平台的应用程序是在 Overwolf 浏览器中执行的 html/js 应用程序。浏览器通过全局变量公开 Overwolf API,overwolf
因此例如对 API 的调用如下所示:
overwolf.windows.getCurrentWindow(function callback(res) {
var id = res.window.id;
overwolf.windows.close(id, function callback() {
logger.warning("Closing App!");
});
});
(请注意,没有导入任何脚本,API 由浏览器公开)我目前正在尝试将我的普通 JS 应用程序迁移到 React,但他们的 API 公开方式面临一些问题。因为我没有导入任何类型的脚本,所以 React 不知道该全局变量,并且无法编译并显示错误:
Line 6: 'overwolf' is not defined no-undef
我试图解决这个问题:
const overwolf = typeof overwolf === 'undefined' ? null : overwolf;
在这种情况下,overwolf 将始终被覆盖为 null。如果我像这样尝试
const overwolfGlobal = typeof overwolf === 'undefined' ? null : overwolf;
react编译器会typeof overwolf
再次抱怨。
所以我的通用问题是:如何使用在运行时提供的全局变量,因此 React(和 Webpack)不知道这些变量