我正在使用node.js和socket.io开发一些东西,但是为了方便起见,我正在Windows上做我的本地开发。 socket.io的安装说明只需执行npm install socket.io
。这对我的linux环境很好,我猜测节点只会在模块中找到它。但在Windows上我不知道该怎么做。我以某种方式使0.6版工作正常,设法找到我需要的文件。
现在,看起来我需要两组文件,一组用于服务器端,一组用于客户端。在github,socket.io和socket.io-client上还有两个repos。所以我试图从那里下载我需要的所有文件。问题是服务器一个引用客户端一个,但socket.io-client文件不在服务器repo中。如果我将服务器文件放入并在我的节点服务器中引用它们,它会在启动时崩溃,说Cannot find module 'socket.io-client'
。
tl; dr 如果我只是将文件复制到我的项目目录中,而不是进行npm安装,那么运行socket.io版本0.7的正确文件结构是什么?
答案 0 :(得分:1)
这里有同样的问题,我也没有使用NPM。但与Windows无关:我在Ubuntu上有同样的问题。
您还需要在node_modules路径中或者保留服务器端socket.io模块的地方使用socket.io-client模块。
答案 1 :(得分:0)
为了解决类似问题,我创建了一个跑步者脚本,只需根据需要设置NODE_PATH env变量,然后执行我的脚本。我还在项目的node_modules子目录中放置了自己的模块(或者我不想通过npm安装的模块)。这里有一个更好的解释http://www.bennadel.com/blog/2169-Where-Does-Node-js-And-Require-Look-For-Modules-.htm
#!/bin/sh
export NODE_ENV=development
if [ "${NODE_PATH}" = "" ]; then
export NODE_PATH=$(npm -g root 2>/dev/null)
fi
node ${1}