2012-06-29 81 views
1

試圖讓我的項目工作在我的debian虛擬機上,但工頭拒絕啓動。 node.js錯誤信息不是很有幫助,因爲它甚至不告訴我哪個模塊找不到。無法啓動工頭cos node.js抱怨一些模糊的模塊找不到

[email protected]:/media/fancystuff$ foreman start 
22:05:33 web.1  | started with pid 2949 
22:05:33 web.1  | 
22:05:33 web.1  | module.js:337 
22:05:33 web.1  |  throw new Error("Cannot find module '" + request + "'"); 
22:05:33 web.1  |   ^
'2:05:33 web.1  | Error: Cannot find module '/media/fancystuff/web.js 
22:05:33 web.1  |  at Function._resolveFilename (module.js:337:11) 
22:05:33 web.1  |  at Function._load (module.js:279:25) 
22:05:33 web.1  |  at Array.0 (module.js:484:10) 
22:05:33 web.1  |  at EventEmitter._tickCallback (node.js:190:38) 
22:05:33 web.1  | process terminated 
22:05:33 system | sending SIGTERM to all processes 

BTW 1:錯誤信息是相同的,無論是否web.js是存在的,如果它刪除了....這只是增加了我的困惑。

BTW 2: 「工頭檢查」 給我 「有效procfile檢測(網絡)」

嘆息。

+0

什麼是web.js? – hasanyasin

+0

web.js是否存在並不重要,錯誤是一樣的。 web.js只是初始化項目所需的所有不同模塊(redis,oauth ....) – nerdess

+0

隨機猜測:它可能與項目位於不支持符號鏈接的裝入驅動器的事實有關嗎? – nerdess

回答

3

從這一行:

'2:05:33 web.1  | Error: Cannot find module '/media/fancystuff/web.js 

它看起來像有在你Procfile,你叫node web.js,因爲這是結束模塊名字符串後把'字符線的末端非打印字符在線的開始處。

編輯Procfile並確保該特殊字符消失後,您的問題可能會得到解決。我可以在我的Debian開發中複製這個。服務器在EOL之前在web.js之後在行尾加32個字符<。

+0

cool thx刪除了procfile末尾的空行,問題解決了!工頭仍然沒有開始,但這是由於其他的東西不見了,呵呵;) – nerdess

0

最有可能的是Procfile從不同的操作系統複製,該操作系統追加回車,例如與工長不兼容的\r\n。只需刪除Procfile中的尾部空格或字符並重新運行即可。或者最簡單的就是去掉Procfile,並使用相同的操作系統

例Procfile:

web: node web.js

,並啓動應用程序:

[email protected]:~/heroku/web$ foreman start