2012-09-13 168 views
1

我似乎無法弄清楚爲什麼這個工程在當地很好,但是當我把它推到Heroku它會失敗,並出現以下錯誤。從Heroku的錯誤:找不到模塊'./proto'在Heroku

錯誤

Starting process with command `node web.js` 

module.js:337 
    throw new Error("Cannot find module '" + request + "'"); 
     ^
Error: Cannot find module './proto' 
    at Function._resolveFilename (module.js:337:11) 
    at Function._load (module.js:279:25) 
    at Module.require (module.js:359:17) 
    at require (module.js:375:17) 
    at Object.<anonymous> (/app/node_modules/express/node_modules/connect/lib/connect.js:14:13) 
    at Module._compile (module.js:446:26) 
    at Object..js (module.js:464:10) 
    at Module.load (module.js:353:31) 
    at Function._load (module.js:311:12) 
    at Module.require (module.js:359:17) 
Process exited with status 1 
State changed from starting to crashed 

的package.json

{ 
    "name": "divtest", 
    "version": "0.0.2", 
    "dependencies": { 
    "underscore": "1.3.x", 
    "crypto": "0.0.x", 
    "knox": "0.3.x", 
    "mongoose": "~3.1.2", 
    "mime": "1.2.x", 
    "express": "3.0.x", 
    "request": "~2.9.203" 
    }, 
    "engines": { 
    "node": "0.6.x", 
    "npm": "1.0.x" 
    } 
} 

./protoconnect呼籲

本地模塊我吹走我的./node_modules文件夾,做了一個npm install --save並仍然得到相同的結果。

+0

你有沒有想過這個想法?我無法找到一種方法來確定Heroku支持每個軟件包的版本。 – electrichead

+4

解決方法是從'.gitignore'中刪除'node_modules'並將我的node_modules文件夾推送到Heroku。這解決了這個問題,編譯也快得多。 –

+0

我甚至不知道可以這樣做。我必須將完整的版本號硬編碼到package.json中才能運行,但這看起來像是一個更好的解決方案。 – electrichead

回答

2

我有這個問題,我的問題是我是一個git初學者,並沒有妥善提交所有需要的文件。它看起來像是在某處連接了一個proto.js。

我做了一個git add *(...)並再次推送,並且一切都很順利。

另一個明顯的錯誤是,在推Heroku抱怨未滿足的依賴。