現在、アプリを Heroku にプッシュしようとしています。すでに数回デプロイできましたが、packages.json ファイルで mongoose を ">= 3.5.0" から ">= 3.6.0rc0" に更新しました。ただし、バージョン 3.6 には mpath と mpromise が必要です。
slug のコンパイルが始まると、キャッシュされたバージョンの mongoose などを使用します。アプリケーションを起動すると、「エラー: モジュール 'mpath' が見つかりません」というメッセージが表示されます。
キャッシュを停止するカスタム ビルドパック Git をセットアップしようとしました。bin/compile のキャッシュをコメント アウトしたところです。
プッシュの出力は次のとおりです: http://pastebin.com/L3Yqy2NR
また、package.json からいくつかの依存関係を削除したときに、「heroku run bash」でログインすると、node_modules の依存関係が削除されたことがわかります。node_modules フォルダーを削除して、別の 'git push' を実行しようとしましたが、どちらも機能しませんでした。そして、削除された dep はまだ node_modules にあります。
誰でもこれを修正する方法について考えがありますか?
編集:
ここに私のpackage.jsonファイルがあります:
{
"name": "souply-api",
"version": "0.1.0",
"author": "Jason Valdron <jason.valdron@orangesprocket.com>",
"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"
}
}
前述のとおり、Mongoose は 3.6.0rc に設定されています。Mpath は、Mongoose の package.json ファイルの依存関係です。ローカルの 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 が存在しないことがわかります。