2013-07-01 7 views
7

私の新しいプロジェクトでは、TFS + Gitで作業する必要があります。TFSとGruntを併用できますか?

告白:私はTFSについて何も知らない。

JavaScriptプロジェクトのビルドを設定したいとします。私はグランツを使いたい。

これは可能ですか?誰かがGruntをTFSで使用しましたか?

+1

を、あなたはこのHTTPSを見ました: //github.com/danactive/grunt-tfs-unlock? – elclanrs

答えて

18

現在のプロジェクトでは、GruntとTFSを使用しています。私はあなたのプロジェクトファイルのPre- or Post-BuildEventsセクションに接続できるバットファイルからTFSを呼び出してGruntを統合しました。

ただし、TFSは特定の環境変数でビルドを実行するため、絶対パスを使用する必要があります。

我々は(ofcourseのだけでなく、あなたの開発マシン(複数可)の上に)あなたのビルドマシン上のNode.jsをインストール

  1. をやった事
  2. のリストはpackage.jsonファイルを追加します。 JavaScriptプロジェクトのルート。
  3. npmを使用してgrunt-cli(!)をインストールします。あなたはここで(以下の例を参照)ステップ3
  4. と同じフラグを使用NPMは、batファイルを書き、あなたが必要とする他のすべてのパッケージについてpackage.json
  5. に開発の依存関係セクションにこのパッケージを追加する--save-devフラグを使用しますヨーヨーでpackages.jsonファイルにリストされているすべてのパッケージをインストールするには、絶対パスのっ
    1. メイク使用
    2. 使用NPM
    3. コールイサキ
  6. ウル前またはPostBuildEventsは、私はTFSを使用する必要があるとき、私はTFSとのうなり声を使用

バットファイルの例

rem use call to execute other bat files 
echo npm install 
call "C:\Program Files\nodejs\npm" install 

rem because we have listed grunt-cli as a dev dependency, 
rem the executable will be located in the node_modules folder 
echo grunt 
call "./node_modules/.bin/grunt" 
+0

私はTFSの使用に慣れている人の観点からより多くの情報を知りたいと思っています。また、これのためのナゲットパッケージはありませんか?たくさんのものを簡単にナゲットパッケージに入れることができるようです。 –

+0

@AllenRice IMOここでnpmに入れることができるのはnodejsかgruntです。その他のパッケージはすべてnpmパッケージです。残念ながら、私はgruntのためのnugetパッケージを見つけていないし、nodejsのためにそこに一般的なものはありません。あなたはこれを試すことができます:https://www.nuget.org/packages/nji/これはステップ1だけを時代遅れにするでしょう。 – thomaux

+0

'' 'grunt-cli''をローカルにインストールするのはなぜですか? –

2

このbatファイルを呼び出します。私はgrunt-tfs-unlockを試みましたが、これにはissueが入りました。私はgrunt-shellを使ってこの問題を解決しました。これはうまく動作し、より多くの設定を担当します。このgistは、私がどのようにTFSを使いこなすかを示しています。これは 'tf checkout'コマンドを示していますが、このパターンで簡単にtfコマンドを作成できます。

0

ノードなどをビルドサーバーにインストールした後、ビルドテンプレートを変更して、ハングアウトなどを呼び出す手順を追加することもできます。これにより、csprojファイルを変更する必要がなくなります代わりにTFSによって作成された環境変数を使用してください。

2

私はNCapsulateを使用するまで、ここに挙げたすべての回答を試してみましたが、成功した自動ビルドとTFSでの展開はできませんでした。ビルドエージェントや開発マシンにNodeJを別々にインストールする必要がなくなります。ちょうどNuGetパッケージ。

ビルドターゲットが正しく設定されていることを確認してください。非常にうまく動作します。

-1

あなたは、以下の手順でターゲット・ファイルを作成することができます。

<exec command="npm install" WorkingDirectory="$(RootFolder)\ui-packages" ContinueOnError="WarnAndContinue"/> 
<exec command="grunt dash-build" WorkingDirectory="$(RootFolder)\ui-packages" /> 
<exec command="rimraf node_modules" WorkingDirectory="$(RootFolder)\ui-packages" /> 
+0

どこに情報がありますか? – jcoppens

+3

このコードがOPに役立つ理由の説明を追加してください。これにより、今後の視聴者からの回答が得られます。詳細については、[回答]を参照してください。 –

関連する問題