2012-03-26 10 views
7

以前のバージョンのnode.js、npm、およびsocket.ioでサーバを使用していましたが、アップデート後にsocket.ioで問題が発生し始めました:エラー:モジュール './lib/socket.io'を見つけることができません

$ node server.js 

node.js:237 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: Cannot find module './lib/socket.io' 
    at Function._resolveFilename (module.js:333:15) 
    at Function._load (module.js:280:25) 
    at Module.require (module.js:357:17) 
    at require (module.js:373:17) 
    at Object.<anonymous> (/usr/local/lib/node_modules/socket.io/index.js:8:18) 
    at Module._compile (module.js:444:26) 
    at Object..js (module.js:462:10) 
    at Module.load (module.js:351:32) 
    at Function._load (module.js:309:12) 
    at Module.require (module.js:357:17) 

アップグレードする前に、node_modulesの下にあるsocket.ioのシンボリックリンクに、同じ名前の「中央にインストールされた」ディレクトリを示しました。最近私はプロジェクトにsocket.ioをローカルにインストールしようとしました:

npm install socket.io 

私のプロジェクトのnode_modulesの下にsocket.ioを配置しました。最初にエラーメッセージが "./lib/socket.io"と書かれていたことが奇妙なことがわかりましたが、私が調べたところでは、project/node_modules/socket.io/index.jsにsocket.ioが必要です。

module.exports = require('./lib/socket.io'); 

しかし、何も輸送以外がありません:

...project/node_modules/socket.io/lib 
$ ll 
total 24 
drwxrwxr-x 3 ghbarratt dev 4096 Mar 26 14:38 . 
drwxrwxr-x 5 ghbarratt dev 4096 Mar 26 15:03 .. 
-rw-rw-r-- 1 ghbarratt dev 10777 Mar 6 16:37 transport.js 
drwxrwxr-x 3 ghbarratt dev 4096 Mar 26 14:38 transports 

別socket.ioのディレクトリがあるはずやlibの下socket.io.jsファイル? index.jsに内部ファイルがないと思われるのはなぜですか?

バージョン:

node -v 
v0.7.7-pre 

npm -v 
1.1.12 

[email protected] 

Distributor ID: Ubuntu 
Description: Ubuntu 10.10 
Release:  10.10 
Codename:  maverick 
+3

'node_modules/socket.io/lib /'には、 'socket.io.js'を含む複数のJSファイルが含まれている必要があります。または少なくとも私のこと(ノード0.6.5、npm 1.1.0、socket.io 0.9.2)。 –

+0

@Felix Loether - 確認していただきありがとうございます。今私は私が持っているべきすべてのファイルを私が得なかった理由を理解する必要があります。 – ghbarratt

答えて

17

私は自分の質問に答えることを憎むが、私は物事が解決取得しなかったと私はそれが他の誰かを助けることができる場合には、これを追加するつもりですので、他の答えはありませんでした。

Felix Loetherさんのコメント(私は+ 1edでした)では、私がnpm install socket.ioの間に持っていなければならないすべてのファイルを手に入れられなかったことは確かです。 apt-get update/upgradeを試してみました。タールなどのアップデートが必要かもしれないと思っていましたが、結果は変わりませんでした。

私はインストールの出力で304応答に気づいていましたが、何らかの種類のnpmキャッシュがあればそれをクリアしなければならないと思っていました。 I discoveredコマンド:npm cache cleanでnpmキャッシュをクリアすることができました。キャッシュをきれいにすると、最終的にエラーなしの実行時の問題が解決されました。

次に、エラーメッセージ「make: node-waf: Command not found」を取得しました。lead me to reinstall nodeです。

そして、すべてのことがうまくいった!

+2

引用のための+1 'npm cache clean'。これは1つの同様の問題を解決します。 –

関連する問題