我尝试在一个简单的应用程序中使用socket.io。
当它调用以下js文件时:
node_modules \ socket.io \ lib中\运输\ websocket.js
以下行无法加载(它确实没有失败。它实际上返回了一些空结果,并且使用protocolVersions失败了一些后来的代码):
var protocolVersions = require('./websocket');
我调试了一下,似乎这一行的意图是加载以下js文件:
node_modules \ socket.io \ lib中\运输\的WebSocket \ index.js
但是因为在“transports”文件夹下还有一个“websocket.js”(正在运行的文件),require函数总是尝试加载“websocket.js”,并返回一些意外的结果。
我将文件夹名称更改为“websockets”并改为调用“require('./ websockets')”,它解决了问题。然而,这是一个共享库,我感到不舒服搞乱其代码。
我试图理解为什么这个问题以这种方式发生,应该是解决它的最佳方法。我确信这段代码在发布之前已经过充分测试。
您可能已经注意到我使用反斜杠'\'来分隔路径。是的我在Windows上运行它!这会产生什么不同吗?
谢谢!