1

関連する JavaScript ファイルを持つライブラリ プロジェクトがあります。このライブラリを使用するすべての Web サイトに含める必要があります。

ソース管理では、js ファイルはライブラリに属しています (これは正しいです)。ただし、アプリケーションを実行/デバッグ/変更するときは、ライブラリを使用してファイルを Web プロジェクトに属するものとして扱うと非常に便利です

TFS では、ライブラリのスクリプト ディレクトリを Web プロジェクトのスクリプト ディレクトリに再マッピングすることでこれを処理しました。つまり、プロジェクトを操作するとき、js ファイルは実質的に Web プロジェクトの一部として見えますが、分岐/マージ時にはライブラリに従います。 .

gitで同様のことを行うにはどうすればよいですか?

ビルド スクリプトを使用してファイルをコピーすることは、実行可能なソリューションではありません。コピーを更新するだけなので、デバッグ中のライブ変更が不可能になるか、ファイルを強制的にコピーするために小さな変更だけでアプリ全体を再構築する必要があります。

Web サーバーはプロジェクト ファイルを読み取らず、リンクを認識せず、スクリプトが要求されたときに 404 を返すため、「リンクとして追加」を使用することもできません。

プロジェクトは Visual Studio 2012 で開発されているため、どのソリューションも VS のプロジェクト構造とうまく連携する必要があります。

4

3 に答える 3

2

ライブラリ プロジェクトの Git リポジトリをアプリケーションの Git リポジトリのサブモジュール(または必要に応じてサブツリー) にして、相対パスを使用してアプリケーションからライブラリの JavaScript ファイルを参照するだけではどうですか?

于 2013-08-30T13:55:42.753 に答える
1

回避策は、ntfs ハード リンクを使用することです。

mklink /h aliasdir\script.cs realdir\script.cs

次に、に追加aliasdir.gitignoreて、git がファイルを 2 回追加しないようにします。ファイルは 1 つの場所 ( realdir) にのみ存在しますが、両方の場所から追加できます。

短所は、リポジトリのクローンが作成されるたびにハード リンクを作成する必要があることです。これは、チェックインできる構成ではありません。

私も最初にシンボリックリンク (mklinkなし/h) を試しましたが、Cassini (ASP.NET 開発サーバー) はそれらに従いません。

于 2013-08-30T13:33:57.790 に答える