Javascript 在react组件中使用全局定义的脚本

Javascript 在react组件中使用全局定义的脚本,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,我正在使用react创建一个基于web的聊天应用程序,并决定实施端到端加密。所以我用的是信号加密协议。现在,为了进行端到端加密,我需要导入的主库位于一个名为libsignal-protocol.js的文件中(它在signals github repo中提供)。我需要使用的所有函数和变量都位于名为libsignal的变量中(示例-libsignal.KeyHelper.generateIdentityKeyPair()) 库libsignal protocol.js不提供javascript模块,

我正在使用react创建一个基于web的聊天应用程序,并决定实施端到端加密。所以我用的是信号加密协议。现在,为了进行端到端加密,我需要导入的主库位于一个名为libsignal-protocol.js的文件中(它在signals github repo中提供)。我需要使用的所有函数和变量都位于名为
libsignal
的变量中(示例-
libsignal.KeyHelper.generateIdentityKeyPair()

libsignal protocol.js
不提供javascript模块,所以我用全局脚本声明导入整个库

<!DOCTYPE html>
<html lang="en">
  <head>
   <script src="libsignal-protocol.js"></script>
    ...........
   </head>
<body>
......
</body>
</html>

...........
......
因为我的聊天应用程序是react应用程序,所以我尝试调用react组件中的
libsignal
函数

Webpack提供了一个错误

第33:13行:“libsignal”未定义无未定义

我在谷歌上搜索并试图解决这个问题,发现这个问题与typescript有关,我使用的是javascript,所以这不是重复

Javascript没有
declare
关键字。如何告诉webpack我已经使用全局脚本标记导入了libsignal?

请尝试此方法

window.libsignal

您的捆绑包是在libsignal库之前还是之后加载的?如果libsignal将某些内容放入全局变量中,并且您的网页捆绑包是在之后加载的,您应该能够通过
窗口访问它。whateverLibSignalAddsToGlobal
。或者,您可以异步加载脚本,并呈现您的反应树/组件,谢谢!它真的很有帮助。捆绑包是在libsignal库之后加载的。非常感谢。@azium与azium在评论中的回答相同。很抱歉没有notice@IgorDoroshenko你是真正的mvp