2013-07-29 9 views
7

私はHerokuに配備しているNodeアプリケーションを持っています。彼らのドキュメントでは、より速いデプロイとdev/prodパリティのために、check in your node_modules directory(つまり、ではありません)というのがベストプラクティスです。devDependenciesに別のnode_modulesフォルダを持たせることはできますか?

私のpackage.jsonには、devDependencies(主にグランツのプラグインとすべてのdeps)と、Expressのようないくつかの通常の生産dependenciesがあります。 Herokuは、プロダクションデープだけが必要です。彼らは約50MBになるので、私はむしろすべての私のdev depsをチェックインしないだろう。

デベロッパー向けに別のフォルダを用意する方法はありますか? node_modules_dev?これが可能だった場合はnode_modules_dev.gitignoreに追加し、Herokuのアドバイスに従って通常の生産node_modulesディレクトリにチェックインすることができます。

これを行う方法はありますか?あるいは、私がやろうとしていることをやり遂げる別の方法を考えてもいいですか?

+1

私も知りたいです。私は現在、.gitignoreにdevモジュールを追加しています。 –

+0

NPMを手動で使用している場合は、 - prefixを使用してこれを行う方法があります。あなたは 'NPMのinstall'を実行するときは、接頭辞が何であるかを制御することができ、そして、あなたのモジュールは、指定したフォルダからそこにインストールされます。しかし、packages.jsonとHerokuではこれは役に立たない。 – Slavo

答えて

1

とにかくそれらをチェックしても問題ありませんが、唯一懸念されるのがスラッグサイズです(つまり、git repoサイズではない、またはそのHeroをHerokuに転送した場合)。.slugignoreにnode_modulesを追加してください。

文書番号:Ignoring files with .slugignore

+0

おかげさまで、 '.slugignore'は認識していませんでした。スラッグの大きさは私の主な懸念の一つでした。 – callum

2

は、私は私のファイルを、構築、テスト、および展開するCIサーバーを使用する - 私は、余分な依存関係を展開および/またはHerokuの上で再構築する必要から私を妨げる同様のソリューションを探していました。

すべてのテストを実行した後、npm prune --productionを実行します。これはをnode_modulesから削除して、結果をHerokuにプッシュします。

余分なファイルがサーバーに行っていない、とHerokuのは、通常、ガルプ/兵卒のプラグインで見つかったすべてのバイナリをビルドする必要がなくなりますので、展開時間がはるかに高速です。