2011-10-24 2 views
3

heroku에서 stylus, express, socket.io와 같은 deps/modules를 사용하여 node.js 응용 프로그램을 배포하고 있습니다.Heroku가 말하길 : 'socket.io'모듈을 찾을 수 없습니다.

server.js

/** 
* Bootstrap app. 
*/ 

// I've tried with and without that line... not sure what it does 
require.paths.unshift(__dirname + '/../../lib/'); 



/** 
* Module dependencies. 
*/ 

// I've tried with "socket.io", "./socket.io" and "Socket.IO" 
var express = require('express') 
    , stylus = require('stylus') 
    , nib = require('nib') 
    , sio = require('socket.io'); 

파일 package.json

{ "이름"의 시작 : "test.io", "설명": "blabla", " 버전 ":"0.0.1 ","종속성 ": { "express ":"2.3.11 " ,"jade ":"0.12.1 " ,"스타일러스 ":"0.13.3 " ,"nib ":"0.0.8 " }}

그래서 유일한 영웅 웹 작업자가 충돌합니다. 로그는 다음과 같습니다.

2011-10-24T09:15:27+00:00 heroku[slugc]: Slug compilation finished 
2011-10-24T09:15:35+00:00 heroku[web.1]: Unidling 
2011-10-24T09:15:35+00:00 heroku[web.1]: State changed from down to created 
2011-10-24T09:15:35+00:00 heroku[web.1]: State changed from created to starting 
2011-10-24T09:15:39+00:00 heroku[web.1]: State changed from starting to crashed 
2011-10-24T09:15:39+00:00 heroku[web.1]: State changed from crashed to created 
2011-10-24T09:15:39+00:00 heroku[web.1]: State changed from created to starting 
2011-10-24T09:15:41+00:00 heroku[web.1]: Starting process with command `node app.js` 
2011-10-24T09:15:41+00:00 app[web.1]: 
2011-10-24T09:15:41+00:00 app[web.1]: node.js:134 
2011-10-24T09:15:41+00:00 app[web.1]:   throw e; // process.nextTick error, or 'error' event on first tick 
2011-10-24T09:15:41+00:00 app[web.1]:  ^
2011-10-24T09:15:41+00:00 app[web.1]: Error: Cannot find module 'socket.io' 
2011-10-24T09:15:41+00:00 app[web.1]:  at Function._resolveFilename (module.js:320:11) 
2011-10-24T09:15:41+00:00 app[web.1]:  at Function._load (module.js:266:25) 
2011-10-24T09:15:41+00:00 app[web.1]:  at require (module.js:348:19) 
2011-10-24T09:15:41+00:00 app[web.1]:  at Object.<anonymous> (/app/app.js:18:11) 
2011-10-24T09:15:41+00:00 app[web.1]:  at Module._compile (module.js:404:26) 
2011-10-24T09:15:41+00:00 app[web.1]:  at Object..js (module.js:410:10) 
2011-10-24T09:15:41+00:00 app[web.1]:  at Module.load (module.js:336:31) 
2011-10-24T09:15:41+00:00 app[web.1]:  at Function._load (module.js:297:12) 
2011-10-24T09:15:41+00:00 app[web.1]:  at Array.<anonymous> (module.js:423:10) 
2011-10-24T09:15:41+00:00 app[web.1]:  at EventEmitter._tickCallback (node.js:126:26) 
2011-10-24T09:15:41+00:00 heroku[web.1]: Process exited 
2011-10-24T09:15:44+00:00 heroku[web.1]: State changed from starting to crashed 

그래서 어떤 아이디어입니까? 누구에게나 일어난 일이야?

답변

0

소켓 io를 설치 했습니까? 다음을 실행 해보십시오 :

npm install socket.io 

이렇게하면 노드 패킷 저장소에서 사용할 수있는 최신 socket.io가 설치됩니다.

+0

영웅입니다. Npm을 실행할 수 있습니까? Gonnar 시도 ... –

8

나는 package.json의 종속성에 socket.io를 추가해야한다고 생각합니다.

{ "name": "test.io" , "description": "blabla" , "version": "0.0.1" , "dependencies": { "express": "2.3.11" , "jade": "0.12.1" , "stylus": "0.13.3" , "nib": "0.0.8" , "socket.io" : "0.8.5" } } 

아니면 그냥 이렇게 : socket.io의 최신 버전을 설치하고 의존성에 추가합니다

npm install socket.io --save

.

3
npm install socket.io 

나를 위해 속임수를 사용했습니다. 창 아래에있는 경우 관리자 권한으로 실행해야합니다.