2014-10-19 77 views
3

我很驚訝,谷歌搜索這不給我任何結果。總之這是一個使用socket.io時,我的問題:節點:Socket io require.resolve不是函數嗎?

enter image description here

當我進一步檢查,它是從socket.io index.js源文件(第28行),這是造成問題:

var clientSource = read(require.resolve('socket.io-client/socket.io.js'), 'utf-8');

所以require.resolve()不是函數,我懷疑起初它是我的節點版本,但不是,我已經更新到最新版本,它仍然存在。

我正在使用browserify和gulp來生成應用程序文件。

任何人都有解決這個問題?謝謝

+0

嘗試更新socketio版本 – azero0 2014-10-19 15:27:27

+0

你正在構建'socket.io .js'你自己?向我們展示您的browserify命令。 – Brad 2014-10-19 15:33:47

+0

@Brad:不,我不是自己構建它,我包含一個模塊 – user2002495 2014-10-19 15:41:19

回答

13

browserify執行require沒有resolve方法。

由於明顯的原因,您不能在瀏覽器中運行socket.io服務器。如果你真的想要一個socket.io客戶端,你應該要求socket.io-client(readme說它是瀏覽器兼容的)。

+0

所以,這是爲客戶端?在express服務器本身注入的socket.io應該仍然像'require('socket.io');'對嗎? – user2002495 2014-10-19 15:42:38

+0

@ user2002495對 – vkurchatkin 2014-10-19 15:44:03

3

要使用socket.io在瀏覽器中安裝客戶端的lib:

npm install socket.io-client --save 

它可以與進口:

var io = require('socket.io-client');