我目前正試圖將我的應用程序推送到Heroku。我已經能夠部署它幾次了,但現在我已經在我的packages.json文件中將貓鼬從「> = 3.5.0」更新爲「> = 3.6.0rc0」。但是,版本3.6需要mpath和mpromise。將Node.JS應用程序部署到Heroku - 緩存問題?
當slug編譯開始時,它使用緩存版本的mongoose或其他東西,因爲當我的應用程序啓動時,出現「Error:Can not find module'mpath'」。
我試圖建立一個自定義buildpack的Git,將停止緩存,我只是註釋掉緩存東西在斌/編譯,可在這裏:https://github.com/jValdron/heroku-buildpack-nodejs
這裏是推的輸出:http://pastebin.com/L3Yqy2NR
另外,當我從package.json中刪除了一些依賴項時,如果我使用'heroku run bash'登錄,我可以看到那些已經刪除了node_modules中的依賴項。我已經嘗試刪除node_modules文件夾並執行另一個'git push',但這也不起作用。而那些刪除的deps仍然在node_modules中。
任何人有關於如何解決這個問題的想法?
編輯:
這裏是我的package.json文件:
{
"name": "souply-api",
"version": "0.1.0",
"author": "Jason Valdron <[email protected]>",
"description": "Main gears that runs the Soup.ly application",
"dependencies": {
"bcrypt": ">= 0.7.3",
"express": ">= 3.0.5",
"extend": ">= 1.1.3",
"imagemagick": ">= 0.1.3",
"jade": ">= 0.27.7",
"knox": ">= 0.4.6",
"less": ">= 1.3.1",
"less-middleware": ">= 0.1.9",
"moment": ">= 1.7.2",
"mongoose": ">= 3.6.0rc0",
"mongoose-types": ">= 1.0.3",
"node-native-zip": ">= 1.1.0",
"nodemailer": ">= 0.3.37",
"oauth2orize": ">= 0.1.0",
"passport": ">= 0.1.15",
"passport-local": ">= 0.1.6",
"passport-google": ">= 0.2.0",
"passport-facebook": ">= 0.1.4",
"passport-twitter": ">= 0.1.4",
"passport-http": ">= 0.2.1",
"passport-http-bearer": ">= 0.2.0",
"passport-oauth2-client-password": ">= 0.1.0",
"poor-form": ">= 1.1.3",
"request": ">= 2.12.0",
"socket.io": ">= 0.9.13"
},
"engines": {
"node": "0.8.x",
"npm": "1.1.x"
}
}
貓鼬被設置爲3.6.0rc,如前面說。 Mpath是Mongoose的package.json文件中的一個依賴項。此外
"dependencies": {
"hooks": "0.2.1"
, "mongodb": "1.2.11"
, "ms": "0.1.0"
, "sliced": "0.0.3"
, "muri": "0.3.0"
, "mpromise": "0.2.0"
, "mpath": "0.1.1"
}
,如果我heroku run bash
登錄,並導航到node_modules/mongoose/node_modules
我看到的mpath和mpromise是不存在的:如果我看我的地方貓鼬的package.json文件,我可以看到這一點。
你應該接受這個答案,因爲這樣:) :) – streetlight
@streetlight啊,謝謝你,我回答了,必須等待幾個小時才能接受我自己的答案,我有點忘了它:) – jValdron
沒問題 - 發生在我們最好的人身上! – streetlight