我添加了一条require语句,要求if语句中的ws
库,以便仅当它不是浏览器时才将其导入。例如,仅要求ws
进行测试。
if (!process.browser) {
webSocketLinkConfig.webSocketImpl = require('ws');
}
但是问题是,即使其余分配webSocketLinkConfig.webSocketImpl
都没有发生,需求也会执行,并且我在浏览器中收到一条警告,提示Module not found: Can't resolve 'bufferutil' in '/Users/pubudu/Projects/FleetManager/fm-dash-front/node_modules/ws/lib'
知道发生了什么以及如何解决?
这是使用react
构建的create-react-app
应用。
答案 0 :(得分:0)
我以前没有使用过process.broswer,所以可能您没有设置它。我创建了一个沙箱,用于使用navigator
来获取您是否在浏览器中运行。
导航器对象包含有关浏览器的信息。 -w3schools
if (!navigator) {
webSocketLinkConfig.webSocketImpl = require('ws');
}
Here is a CodeSandbox example,该文本(使用控制台)显示了如何使用navigator
来指示您是否在浏览器中运行代码。希望这会有所帮助。