0

最後の更新

まだ 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"
  }
}
4

1 に答える 1

0

以下はHerokupackage.jsonでの作業例です

{
    "name": "MyApp"
    , "version": "0.0.1"
    , "dependencies": {
          "express": "3.x.x"
    }
    , "devDependencies": {
        "mocha": "*"
        , "should": "*"
        , "supervisor": "*"
        , "superagent": "*"
        , "request": "*"
    }
    , "engines": {
        "node": "0.8.x"
        , "npm": "1.1.x"
    }
}
于 2012-10-16T06:00:25.143 に答える