浏览器端引入CertStream JS时报require is not defined错误如何解决?
问题原因
require()是Node.js专属的模块化导入语法,浏览器原生运行环境不支持该方法,这是报错的直接原因。- 你通过
<script>标签引入的certstream.min.js是UMD格式的打包产物,加载后会自动将库挂载到浏览器全局对象window上,无需额外导入即可使用。
解决方法
直接删除const CertStreamClient = require('certstream');这行代码,改为从全局挂载的CertStream对象中获取客户端类即可,修改后的完整代码如下:
<!DOCTYPE html> <html lang="en"> <head> <title>Certstream</title> <meta name="viewport" content="width=device-width; initial-scale=1.0;"/> <!-- 修正原代码中charset的拼写错误,原UFT-8应为UTF-8 --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <h1>CertStream</h1> <!-- CertStream script --> <script src="dist/certstream.min.js"></script> <script> // 从全局挂载的CertStream对象获取客户端类 const CertStreamClient = CertStream.default; let client = new CertStreamClient(function(message){ console.log("Received -> ", message) }); client.connect(); </script> <!-- //CertStream script --> </body> </html>
验证说明
修改后刷新页面,打开浏览器开发者工具的控制台,即可看到连接日志和收到的CertStream推送消息。
内容的提问来源于stack exchange,提问作者Europa
相关产品推荐
相关产品推荐

