最後の更新
まだ 1.0 ではない私の依存関係の 1 つが、2 つのバージョン間で API を変更したようです。私のローカル バージョンは古く、Heroku にプッシュすると、Heroku は最新バージョンをダウンロードし、API の変更によりアプリがクラッシュしました。
結論: まだ安定していない (1.0 に達していない) ライブラリを使用する場合は、特定のバージョンに固執してください。
私を助けてくれてありがとう。
=================
Node 0.8.latest を使用して、3.latest を表現します。
私のルートの 1 つはローカルでは完全に機能しますが、アプリのデプロイ時に 500 エラーが発生します。エラー メッセージはアプリ固有のものですが、論理的ではありません。これは TypeError であり、何か (定義されるべき) が未定義であることを示しています。それを機能させるために、私が見つけた唯一の奇妙な解決策はnode_modules
、.gitignore から削除し、git の下で追跡することでした。Heroku にプッシュすると、エラーは表示されず、URL は機能します
node_modules フォルダー内のコードを変更していないことを知っていると、奇妙になり始めます。また、ローカルと「heroku」でインストールされた依存関係をnpm ls
、heroku にプッシュしたときに生成されたモジュールのリストと比較することで比較しました.gitignore
。で示されているいくつかのパッケージで、些細ではあるが不可解な違いが見invalid
られnpm ls
ます。このパッケージはどれも私のpackage.json
ファイルにはありませんpackage.json
。. つまり、connect
ローカルでは 2.4.4、heroku では 2.5.0、send
ローカルでは 0.0.4、heroku では 0.1.0、ローカルでemitter-compnonent
は 0.0.1、heroku では 0.0.5 です。残りは厳密に同一です。
注意すべきもう 1 つのことは、エラー スタック トレースが、両方の環境で同一のバージョンを持ち、異なるバージョンを持つモジュールに依存しておらず、依存関係もないモジュールを指していることです。したがって、わずかな依存関係の違いでさえ問題の原因にはなりません。
しかし、問題の原因がどこにあるのかわからないので、自分のnode_modules
ファイルを追跡するのは避けたいと思います。それとも私はすべきですか?
アップデート
これは、Hector Correa の要求による私の package.json ファイルです。
{
"name": "myapp",
"version": "0.1.0",
"dependencies": {
"express": "3.0.x",
"mongoose": "3.0.x",
"superagent": "0.9.x",
"oauth": "0.9.x",
"querystring": "0.1.x",
"consolidate": "~0.4.0",
"mustache": "~0.6.0",
"singly": "*",
"underscore": "~1.4.1"
},
"devDependencies": {
"mocha": "1.4.x",
"supertest": "0.1.x"
},
"engines": {
"node": "0.8.x",
"npm": "1.1.x"
}
}