web-dev-qa-db-ja.com

PhoneGap / Cordova 3.0プロジェクトの.gitignore-何をコミットすればよいですか?

新しいphonegap 3.0プロジェクトを作成しようとしました...注:phonegapは初めてです。とにかく、プロジェクトフォルダーには以下が含まれています。

  • .cordova
  • merges
  • platforms
  • plugins
  • www

そして、phonegap local run Androidを試したところ、platforms/Androidにバイナリ/生成されたファイルがたくさんあります。このため、このフォルダー構造のどの部分をgitリポジトリに追加する必要があるのか​​疑問に思います。通常、バイナリファイルをコミットするのは非常に悪い習慣だと思います。そのため、通常、bin/obj/*.o*.pycなどのパターンを.gitignoreに追加して、Gitリポジトリーのみが提供するもので汚染しないようにします。マージの競合を作成します。

確かにwwwをgitに追加する必要がありますが、プロジェクトの他の部分についてはどうでしょう。ソースコードの製品はどの程度まで拡張され、プロジェクト構成はどの程度まで拡張されますか?

職業はなんですか?私は新しいので、ここで何が理にかなっているのかほとんどわかりません...

105
jonasfj

答えは、phongapアプリを開発しているプラ​​ットフォームと、標準のディレクトリ構造に従っているかどうかによって異なります。

プロジェクトのディレクトリ構造が標準の場合、この gitignore から始めて、必要に応じて変更できます。

経験則では、bin/gen/ディレクトリなど、生成されたすべてのファイルを除外する必要があります。アプリのAndroidバージョンを開発している場合は、*.apkのようなビルドファイルを除外する必要があります。

Androidサブディレクトリで生成されたすべてのファイルも除外する必要があります。

Android/bin/
Android/gen/
Android/assets/
43
Atropo

@Jake Moshenkoの回答を拡大:

platformsディレクトリを省略するというアイデアが好きです。実際、pluginsディレクトリとplatformsディレクトリの両方を除外できます。 .gitignoreの適切な出発点:

platforms/
plugins/

これに関する問題は、実際に作業する前にレポジトリのクリーンコピーを初期化する必要があることです。次のような初期化スクリプトを作成することは理にかなっています。

#!/bin/bash
textReset=$(tput sgr0)
textGreen=$(tput setaf 2)
message_info () {
  echo "${textGreen}[my-app]${textReset} $1"
}

message_info "Creating necessary directories..."
mkdir plugins
mkdir platforms

message_info "Adding platforms..."
# If using cordova, change to: cordova platform add Android
phonegap build Android
phonegap build ios

message_info "Adding plugins..."
# If using cordova, change to: cordova plugin add
phonegap local plugin add https://git-wip-us.Apache.org/repos/asf/cordova-plugin-device.git

このアプローチの注意点は、phonegap/cordovaでサポートされているもの(つまり、画面の向きのサポート)以外でプラットフォーム固有のアプリコード/構成をカスタマイズするのが少し難しくなることです。

更新: Bash Gist

この Gist には、pluginsおよびplatformsディレクトリをコミットしないプロジェクトを処理するためのより完全なスクリプトが含まれています。これは、アイコンとスプラッシュスクリーン画像をwwwからプラットフォームディレクトリ(iOSおよびAndroid用)にコピーし、プラグインをインストールし、バージョン管理に追加するプラットフォーム固有のファイルを処理するメカニズムを提供します。

更新: Grunt Gist

もう1つ Gist があります。これは、上記のbashスクリプトのGruntポートです。 (うなり声を示唆してくれた@obieに感謝します)。

49
Jonathan Dixon

だから私は試行錯誤を通してこれを理解しました。 phonegapローカルビルドまたはリモートビルドを使用している場合、platformsディレクトリは省略できます。その場で生成されます。隠しフォルダーを含む他のすべてのフォルダー.cordovaは必須です。

7
Jake Moshenko

私はこの問題と私たちが最終的に従ったアプローチに関する私の経験をここに残したかっただけです。

Phonegapプロジェクトでは、.gitignoreファイルを使用して、フォルダー/ platform以外のすべてのファイルをコミットし始めました。開発者がリポジトリのクローンを作成したときに実行すべきアクションは、実行することだけだと考えました。

phonegap/cordovaプラットフォームを追加

しかし、そうではありませんでした。プラットフォームが追加されてコンパイルしようとすると、エラーが表示され、アプリがデバイスにインストールされませんでした。

ログを見ると、このエラーはプラグインが原因であるというヒットがありました。そこで、プロジェクトで使用していたすべてのプラグインを再インストールし、アプリが正しく実行されるようにすることにしました。

そのため、フォルダープラットフォームとプラグインを除くすべてのコンテンツをリポジトリに保存することをお勧めします。プロジェクトで使用されるプラグインのリストを含むファイルREADME=を作成して、リポジトリにアップロードします。

このように、開発者がリポジトリを複製するとき、彼/彼女は以下をしなければなりません:

1.-プラットフォームの追加:phonegap/cordova add platform "platform"

2.-プラグインを追加:phonegap/cordova plugin add "plugin"

お役に立てれば!

よろしく。

4
nespapu

このようなものの多くは古く、Apache Cordovaの最新バージョンには実際には適用されません。 Apache Cordova 5.1.1を使用しています。この.gitignoreを使用すると、AndroidとIOS。 .gradleが使用されているため、削除しないでください!

www/
.gradle/
build/
.tmp/
.temp/
coverage/
*.log
node_modules/
bower_components/
1
Helzgate

個人的な好みではありますが、私はこれを使用しました(Androidのみのプロジェクト)。ほとんどを削除しますが、カスタムは保持します

ToonPlane/platforms/Android/*
!ToonPlane/platforms/Android/AndroidManifest.xml
ToonPlane/plugins/*
!ToonPlane/plugins/Android.json
!ToonPlane/plugins/fetch.json
0
Funkodebat