2017-02-16 2 views
1

私はTeam Foundation Buildサーバーをファイアウォールの背後に置いています。プロジェクトに関連付けられたディレクトリ(BrowserifyクライアントアプリケーションとNode Serverアプリケーションの両方に電源を投入)をチェックして、展開に必要なすべてのファイルと依存関係ビルドは何も取得せずに利用可能です。 TFSの中node_modules/をチェック`node_modules /`にある `bin /`ディレクトリをTFSにチェックインするにはどうすればいいですか?

が約20私のNPMの依存関係の中に現れるbin/ディレクトリがチェックインされていなかったことを除いて、最初に動作するように見えた。bin/.tfignoreに表示されます(またはどこか他の私はそのことを知らないかもしれませんチェックインを妨げる)。

これらのbin/ディレクトリは、チームエクスプローラの包含/除外変更には表示されません。 Windowsエクスプローラでこれらのフォルダの1つを見つけてTFSコンテキストメニューで追加することは可能ですが、すべての依存関係に対してこれを行うのは恐ろしく退屈でエラーが発生しやすいでしょう。

これらのフォルダの変更を検出するには、どうすればTFSを説得できますか?私が気付いていない包含/除外変更に影響する他の設定がありますか?

+0

主に使用可能な回避策:node_modulesフォルダのTFS追加コンテキストメニュー項目を使用すると、不在のbinフォルダがすべて削除されます。これが設定されている場所を知りたいですか? – Pathogen

+0

デベロッパーマシンにVSエクステンションをインストールしましたが、これはチェックインをブロックしていますか? –

答えて

2

"bin"フォルダまたは "node_modules"フォルダをVersion Controlにアップロードすることはお勧めしません。しかし、あなたは以下の手順で、これを行うにはしたくない場合:"C:\Users\youraccount\AppData\Local\Microsoft\Team Foundation\x.0\Configuration\VersionControl"フォルダを開いて「LocalItemExclusions.config」ファイルに

  1. ゴー。 (1.0、2.0、3.0のような名前のいくつかのフォルダは、あなたのVS現在の使用フォルダを開くことを確認するために存在が必要な場合があります。)

  2. 次のような行を削除し、ファイルを保存します。

<Exclusion>bin</Exclusion> 
    <Exclusion>*.dll</Exclusion> 
  1. Visual Studioを閉じます。
  2. "node_modules"フォルダを削除します。
  3. Visual Studioを再起動します。
  4. 「npm install」コマンドを実行してノードモジュールを再インストールします。
  5. 「変更が保留中」にチェックすると、「除外された変更」セクションに「bin」フォルダ内のファイルがリストされます。
+0

説明したように動作します。私のノードモジュールにはDLLファイルはありません(実際のビルド製品をチェックインすることは避けます)。 'bin'ディレクトリにはスクリプトしか含まれていません。 – Pathogen

0

ファイルとbinフォルダがTFSによって無視されるかどうかを確認します。手動で追加することもできます(ソースコントロールエクスプローラにドラッグするなど)。できない場合は、.tfignoreの設定に関連する必要がありますが、プロジェクトフォルダレベルのルートに.tfignoreというファイルがあるかどうかを確認することができます。

可能であれば、binフォルダの作業領域またはソース管理のマッピングに問題がある可能性があります。 remove the source control bindingsを試して、TFSに再バインドしてください。また、古いワークスペースを削除して試してみて、新しいワークスペースを使用してください。

+0

フォルダをソースコントロールエクスプローラにドラッグすると、「除外されたアイテム」の下に「bin」という名前のフォルダの内容が表示され、含めることができます。しかし、私がこれをしないと、 'bin 'の内容はTeam Explorer> Pending Changesで検出されません。私は解決レベルで '.tfignore'を持っていますが、そこに' bin 'とは何の関係もありません。 – Pathogen

+0

'Bin'フォルダは、TFSによって既に無視されていて、ソース管理下にはありません。変更は保留中の変更では表示されません。まず、binフォルダを手動でソース管理に追加する必要があります。ワークスペース内のファイルを削除し(保留中の変更をチェックインしてバックアップをマークする)、最新のバージョンをプルダウンして新しい正しいソースコントロールマッピングを作成するか、新しいワークスペースを直接使用して古いものを削除する。 –

+0

また、通常はBINとOBJフォルダをソース管理に追加することを推奨しませんが、サードパーティのDLLを追加するか、それらを処理するためにnugetパッケージを使用してください。 基本的に、アプリケーションの入力として必要なのはソース管理ですが、アプリケーションの出力(作成されたdll、pdbなど)は含めないでください。 –

-1

node_modulesはチェックインしないでください。

  1. 代わりに、browserifyまたはWebPack(WebPackをお勧めします)を使用してbundle.jsをパッケージ化してください。
  2. ソース/スクリプトフォルダにbundle.jsを追加します。< ../ node_modules /../ scripts>の代わりにhtmlのbundle.jsを参照してください。
  3. ビルドスクリプトからnpm installを削除します。あなたのバンドルを参照するために今必要はありません。

WebPackは開発段階ですが、開発中に使用したパッケージのバージョンを保護し、展開中にnpmインストールの頭痛を軽減します。

+1

私はクライアントサイドコードとしてBrowserifyを使用しています。しかし、具体的には、ノードアプリケーションを実行する必要があります。これには、バンドルに追加できない一連のコンテンツが含まれています。 – Pathogen

+1

node_modulesをソース管理にチェックするのが間違っているので、ファイアウォールされたビルドサーバーがOPMのNPM依存関係を動的に引き出すことができないという問題が有効です。私は同じボートに入っていて、BrowserifyやWebpackのようなものは含まれていないレガシービルドシステムを持っています。実際には何百万行ものコード行を管理する真剣に後ろ向きのビルドシステムです。このため、私はnode_modulesフォルダをチェックインする必要があります。単に「しないでください」と言っても意味がありません。 – Artif3x

関連する問題