2017-10-24 20 views
3

TFSビルドタスクを使用していて、タスクの1つがnpm installです。 これは、バッチまたはpowershellファイルではありません。TFS npm install Build Task Hanging?

正常に実行されますが、完了したように見えてから約3〜4分間停止します。タスクサマリーが正常に完了したと言われているので、私はこれを知っていますが、3〜4分間次のタスクを開始しません。

元はタスクを追加したときに、このようにハングアップするとは思わなかった。何が変わったのか分かりません。

npm set progress=falseを使用しようとしました。this forumからお勧めし、this articleで説明しました。私はnpm-cacheを追加していません。関連性がないようです。ビルド・タスクが正常に完了してからハングすることを覚えておいてください。

完了後にnpmタスクがハングアップする原因は何ですか?

答えて

1

あなたの説明によると、意味があります。 NPMのインストールは、パッケージがすでにインストールされていることを確認するのに、まで3〜4分かかるため、時間が無駄になります。

Fistコンソールからnpmを実行して、TFSのパフォーマンスが正常かどうかを確認してください。すべてのNPMタスクに長時間を要する場合は、nodejsのバージョンに関連する可能性があります。

たとえば、ビルドエージェントにインストールされているnodejs(8.2.0)などの最新バージョンを使用しています。最新のLTS(長期サポート)バージョン(6.11.1)にダウングレードすると、問題が解決する場合があります。詳細はblogをご覧ください。


もう一つの方法は、あなたが、ビルドのためのオンプレミスのビルドエージェントを使用するので、別の方法としてnpm-cacheを使用しています。

[npm | bower | composer | jspm] をビルドプロセスの一部としてインストールするビルドプロセスに役立ちます。依存関係 は頻繁に変更されないため、構築時間が遅くなることがよくあります。 npm-cache は、以前にインストールされた 依存関係をビルドマシンにキャッシュすることで、この問題を軽減します。 npm-cacheは、[npm | bower | composer | jspm] installを実行するビルドスクリプトの代わりに、 のドロップインになる可能性があります。

それがいかに働くか

あなたはNPM-キャッシュがインストールを実行すると、[NPM |亭| JSPM |作曲]は、それが最初 は、現在ではpackage.json、bower.json、またはcomposer.jsonを探します 依存関係マネージャが要求されているかどうかに応じて作業ディレクトリ。 それから、構成ファイルのMD5ハッシュが計算され、キャッシュディレクトリ(デフォルトで$ HOME/.package_cache )に.tar.gzという名前のファイルがあると、 となります。ファイルが存在しない場合、npm-cacheはシステムの インストールされた依存関係マネージャを使用して依存関係をインストールします。 依存関係がインストールされると、npm-cacheは新しくダウンロードされた 依存関係をタールし、それらをキャッシュディレクトリに格納します。次に npm-cacheが実行され、同じ設定ファイルが表示されると、キャッシュディレクトリにtarball があり、現在のディレクトリ の依存関係をuntarします。

ご参照用のサンプル:Speed up your npm dependent CI build

+0

は、私は、最新のLTSバージョン(6.11.4)に "格下げ" と、それは働きました! @ Patrick-MSFTありがとうございました! – christo8989

+1

ノード8.9 LTS([email protected]、[email protected]、[email protected]、npm build [email protected])を使用して、同じ〜6分の遅延があります。これは、どのnpmコマンドが使用されているかに関係なく、 'npm version'でも6分かかります。 – dalle