2016-04-25 20 views
0

私のプロジェクトはnpm installの間にダウンロードに多くの時間がかかるmochaphantomjsなどを参照しています。ローカルマシンでは問題はありません。手動でアップグレードする場合を除き、一度だけダウンロードして永久に使用できるからです。グローバルにインストールされたパッケージをインストールしないようにnpmを設定するには?

しかし、私のCIのマシンで、私のjenkinsサーバーは彼らに私がテストを行うと展開にgit commitgit pushをしたたびにダウンロードする必要があります。

このような遅いパッケージをリモートサーバーからダウンロードしないようにnpmを設定することで、そのプロセスをスピードアップできますか?むしろ、それらをグローバルキャッシュからインストールするか、グローバルにインストールした場合はインストールしないでください。

誰でもどのように設定するのですか?

答えて

0

package.json内でローカルで使用するすべてのパッケージをdevDependenciesに指定してから、npm install -dを実行すると、メインの依存関係ではなくインストールされます。

+0

はい、私はそれらを 'devDependencies'に入れました。これらのパッケージは非常に遅いので、私はそれらを一度インストールしてから、私は永遠にそれらを使用することができますことを願って頭痛は 'npmのインストール'です。 –

1

私は

  • npm-install-changed役に立つかもしれませんfound some packagesが、それは違うがあれば便利ではないかもしれませんどのビルドを越えnode_modulesが解決しないことを前提としています、package.jsondevDependenciesdependenciesの内容が変更された場合にのみ、npm installを実行しますあなたのCIサーバーは常にゼロから始まります
  • npm-install-cachenpm installを実行してから、現在のnode_modulesフォルダを(\tmpのどこかに)コピーしますuは、それが、その後変更されなかった場合、それは\tmpに保存されているnode_modulesフォルダをコピーします、(devDependenciesまたはdependenciesに行われた変更の代わりに)をpackage.jsonする任意の変更を確認しますもう一度スクリプトを呼び出す、私が見る唯一の制限はありますそれはクロスプラットフォームではないということと、キャッシュフォルダが再起動時に消去され\tmpであること(プロセスが終了した場合でも、または多分!)

それがあるように、第2のパッケージが動作しない場合がありますが、それは良い場所のように思えます開始:

関連する問題