Javascript if中的Require语句即使返回false也会运行

Javascript if中的Require语句即使返回false也会运行,javascript,node.js,reactjs,webpack,Javascript,Node.js,Reactjs,Webpack,我添加了一个require语句,要求if语句中包含ws库,以便仅当它不是浏览器时才导入它。例如,仅针对测试要求ws if (!process.browser) { webSocketLinkConfig.webSocketImpl = require('ws'); } 但问题是,即使分配的其余部分webSocketLinkConfig.webSocketImpl没有发生,请求也会执行,我在浏览器中收到一条警告,说Module not found:cannot resolve'bufferu

我添加了一个require语句,要求if语句中包含
ws
库,以便仅当它不是浏览器时才导入它。例如,仅针对测试要求
ws

if (!process.browser) {
  webSocketLinkConfig.webSocketImpl = require('ws');
}
但问题是,即使分配的其余部分
webSocketLinkConfig.webSocketImpl
没有发生,请求也会执行,我在浏览器中收到一条警告,说
Module not found:cannot resolve'bufferutil'in'/Users/pubudu/Projects/FleetManager/fm dash front/node\u modules/ws/lib'

知道发生了什么事以及如何解决吗


这是一个
react
应用程序,由
create react app

构建,我以前没有使用process.broswer,因此可能您没有设置它。我使用
navigator
制作了一个沙盒,用于获取您是否在浏览器中运行

导航器对象包含有关浏览器的信息。-


它(使用console)显示了如何使用
navigator
来判断您是否在浏览器中运行代码。希望这有帮助。

您好,也许此线程可以帮助您是否有可能未设置process.browser?它是特定于您的构建的,问题中没有显示。@estus它已正确设置,但仍然存在问题。如果我在If块中添加一些代码,它将不会被执行。但这是必需的。同样,这是特定于您如何构建客户端应用程序的,而不是其他。这个问题没有包含必要的信息。@estus啊,对不起。它是一个
react
应用程序,使用
create react app
构建
navigator
未在节点中定义,如果在节点中运行,它将抛出。您应该首先检查导航器是否存在,并且,您可以使用节点中未定义的
窗口
。使用了导航器和窗口,但两者都有问题。两者都在节点中返回未定义,并在浏览器上工作。我认为问题不在那里。检查未定义是否起作用?i、 e.如果(导航器===未定义){//do something}其他{//do something}
if (!navigator) {
  webSocketLinkConfig.webSocketImpl = require('ws');
}