2016-09-14 20 views
1

JavaScript(.js)ファイルをgit制御下に置いておきたいと思います。Gitは生成された拡張子を無視します

ただし、TypeScript(.ts)ファイルが存在する場合、関連する.jsファイルは無視したいと思います。

gitでこれを実現する方法はありますか?

EDIT:好ましくは、ディレクトリを変更したり、既存のコードをすべてリファクタリングしたりしないでください。

+2

私はtypescriptを使用していませんが、typescriptに別のディレクトリにjavascriptファイルを生成するように頼むことはできませんか? – redneb

+1

「_somefile.js」などのファイルに識別子を追加するか、JSを別のディレクトリに出力します(例: 'generated/somefile.js' – vlaz

+0

@ redneb、@ vlaz)。ファイルを移動するのは私の要求ではありません。私は少なくとも私のgit repoが整頓されているのが好きです。したがって、既存のファイルとリファクタをすべて移動する必要がなくても、それができるかどうか疑問に思っていました(自分では望んでいないわけではありません) – chriskelly

答えて

5

これを行う典型的な方法は、コンパイルされた出力をいくつかの配布ディレクトリに置くことです。あなたはそのようなあなたのディレクトリ構造を整理かもしれません:

src/ 
    ... various JavaScript files, etc. 

dist/ 
    ... compiled output from any build tool you're using 

を次にgitの中で、あなただけのdistディレクトリを無視し、その上にそのレポと仕事をプルダウンしようとしている人が実行するかということを前提とすることができます手動でツールをビルドするか、インストールプロセスの一部として自動的にビルドされます。

つまり、特定のgit機能のセットに依存せずに整理する方が簡単です。これはJavaScriptの世界では非常に一般的なパターンです。

この方法を使用しない場合は、無視するファイルに識別子を追加する方法もあります。

:この第二のアプローチにはいくつかの欠点があります

\_* 

:たとえば、あなたが_を無視して、あなたの.gitignoreにこのルールを追加したいすべてのファイルを(理由を、以下の作品のthis answerを参照してください)先頭に追加可能性がありますあなたが同様の識別子で始まるファイル名を使用して使用し、それが維持するのは難しい

  • 衝突があるでしょう
    1. その他のライブラリー;あとで何らかの衝突があった場合や、構造について心配した場合に識別子を変更したい場合は、すべてのファイルを元に戻って名前を変更する必要があります(もちろん、これは自動化できますが、痛みを感じる)

    希望に役立ちます。

  • +2

    これはJavaScriptの世界ではかなり一般的なパターンです.JSだけでなく。生成された出力を生成するほとんどのものがこれを行います。一般に、ソース/生成された区別はほぼ普遍的である。すべての生成されたファイルを取り出して(何らかの形で)配布可能にするビルドステップです。この場合、すべての '* .js'ファイルを取り出して'/js/'ディレクトリに置くことができます最終製品には使われていないので、 '* .ts'は除きます。 – vlaz

    +0

    @vlaz良い明確化、コメントのおかげで。 –

    +0

    @ JoshBeam:私はそれが良い提案だからupvotedしました。しかし、私の質問には答えません。私は既存のファイルとリファクタを移動することは許可されていません。したがって、私は別の方法がgitの検討のためにそれらのファイルを排除するために見つけるしたいと思います。 – chriskelly

    関連する問題