2015-10-20 18 views
6

私のレポにはローカルnpmパッケージが含まれています(私は自分のレポにnode_modulesを含めません。サイズが200MBを超えるため、私のニーズに合わせて修正しなければならない特定のパッケージのみ)。Herokuはローカルのnpmパッケージを見つけることができません

dependencies : { 
    local_package: "./my_local_package" 
    ... 
} 

私は/app/tmp/cacheはそれがない場合は、私のレポが常駐し、場所であるかどうかわからないんだけど

npm ERR! enoent ENOENT: no such file or directory, open 
'/app/tmp/cache/my_local_package' 

を得ましたエラー:package.json

、ローカルパッケージ宣言は次のようになります私は何を変えなければならないのか。

ノードV4.2.1、NPMのv2.14.7

+0

を、なぜuがパッケージ名を入れないのですか?相対ローカルディレクトリでgitに保存することができますが、英雄のためにそれを変更してデプロイすることができます –

+0

ローカル依存関係はgitリポジトリに含まれています(そうでなければ、動作するとは思えません)。 'package.json'のローカル依存関係を指定するこの機能は、npm 2.0以降でサポートされています。そして、herokuにデプロイするときに動作しないように見えるという事実は、私がこの質問をしている正確な理由です:)。 – evfwcqcg

+0

キャッシュを無効にしましたか? 'heroku config:NODE_MODULES_CACHE = false'を設定します。完全なデプロイメントログを提供できますか? – hassansin

答えて

0

はgitのにnode_modulesを追加またはHerokuのにそれを押すは推奨されません。

したがって、あなたのlocal_packageを別個のgitリポジトリに置くことが1つの解決策である場合は、package.jsonに以下を実行することができます。

dependencies : { local_package: "git+https://example.com/local_package.git" ... }

私は、これは他のすべてが無視されている間、あなたのnode_modulesでのみlocal_packageを持つよりもよりよい解決策であると感じています。

1

npm documentation for local pathsによると、あなたはそれをこのように定義する必要があります:Herokuのにプッシュする前に

"dependencies" : { 
    "local_package": "file:./my_local_package" 
    ... 
} 
+0

これを指摘してくれてありがとう。エラーを修正しなかったにもかかわらず、ドキュメントを読むことは非常に役に立ちました。なぜこのステップが必要なのかまだ分かりませんが、展開スクリプトに 'npm i ./local_package --save'を追加すると、ローカルディレクトリからそのパッケージがインストールされました。 – evfwcqcg

関連する問題