2016-05-10 36 views
0

OK、私はHerokuにデプロイされたときに起動時にこのエラーを投げているエクスプレスアプリを持っています。アプリのコンパイルとローカル細かい動作します:Heroku:モジュール 'mongodb'を見つけることができません

Cannot find module 'mongodb' 

私は昨日、それを再デプロイするまで、このアプリを実行していた...ここに

{ 
    "name": "fitness-tracker", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
     "start": "node ./bin/www" 
    }, 
    "dependencies": { 
     "express": "~4.9.0", 
     "body-parser": "~1.8.1", 
     "cookie-parser": "~1.3.3", 
     "promise": "~6.0.1", 
     "morgan": "~1.3.0", 
     "serve-favicon": "~2.1.3", 
     "debug": "~2.0.0", 
     "mongodb-core": "*", 
     "mongoskin": "~2.0.0", 
     "express-handlebars": "~1.1.0", 
     "moment": "~2.0.0", 
     "moment-timezone": "^0.3.1", 
     "q": "~1.0.1", 
     "compass": "~0.1.0", 
     "apm": "*" 
    }, 
    "devDependencies": { 
     "moment-timezone": "^0.3.1" 
    } 

アイデア変わらなかった私のpackage.jsonはありますか?

+3

自分のマシンでクリーンインストールを実行しようとしましたか?また、 'engine'フィールドを' package.json'に追加しようとします。 –

+1

エンジンでノードのバージョンを指定すると、問題が解決されました。ありがとう! – SDG

答えて

1

したがって、パッケージの解像度はノードのバージョンに基づいていました。 NodeJSは急速に進化しているので、package.jsonenginesの仕様を含めることをお勧めします。

さまざまなクラウドプロバイダーで自動展開を行う場合、特定のノード& npmバージョンのみを使用するのに役立ちます。これは、フェッチを取得するすべてのパッケージがそのノードバージョン用に構築されているため、アプリケーションが誤動作する機会が少なくなりました。

はもっと読むhttps://docs.npmjs.com/files/package.json#engines

0

も試してみる価値は常に:node_modulesディレクトリを再作成するためにキャッシュを構築Herokuのを無効にします。 HerokuのCLIライトで

$ heroku config:set NODE_MODULES_CACHE=false 
$ git commit -am 'disable node_modules cache' --allow-empty 
$ git push heroku master 

としてはhereを記載しました。

関連する問題