2011-07-02 39 views
0

我正在用node.js和socket.io開發一些東西,但爲了方便起見,我在Windows上做我的本地開發。 socket.io的安裝說明只是做npm install socket.io。這對我的linux環境來說很好,我猜節點只會在模塊中找到它。但在Windows上我不知道該怎麼辦。不知何故,我得到版本0.6工作,管理找到我需要的文件。適用於socket.io 0.7的文件?

現在看起來我需要兩套文件,一套用於服務器端,一套用於客戶端。 github上還有兩個倉庫,socket.io和socket.io-client。所以我試圖從那裏下載我需要的所有文件。問題是服務器引用了客戶端,但是socket.io-client文件不在服務器回購站中。如果我把服務器文件放進去,並在我的節點服務器中引用它,它在啓動時崩潰,說Cannot find module 'socket.io-client'

tl; dr如果我只是將文件複製到我的項目目錄中,而不是執行npm install,那麼運行socket.io版本0.7的適當文件結構是什麼?

回答

1

這裏有同樣的問題,我也沒有使用NPM。但與Windows無關:我在Ubuntu上也有同樣的問題。

您還需要在您的node_modules路徑或保留服務器端socket.io模塊的位置提供socket.io-client模塊。

+0

謝謝 - 我得到最終,雖然我真的不喜歡它是如何做到這一點的方式。然後我注意到我還需要Redis,這可能會說服我現在不升級。我真的不想要Redis。他們爲什麼會造成這種依賴性? – Tesserex

0

爲了解決類似的問題,我創建了一個runner腳本,它根據需要設置NODE_PATH env變量,然後執行我的腳本。我也將我自己的模塊(或者我不想通過npm安裝的模塊)放在我的項目的node_modules子目錄中。一個更好的解釋是這裏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} 
相關問題