新しいphonegap 3.0プロジェクトを作成しようとしました...注:phonegapは初めてです。とにかく、プロジェクトフォルダーには以下が含まれています。
.cordova
merges
platforms
plugins
www
そして、phonegap local run Android
を試したところ、platforms/Android
にバイナリ/生成されたファイルがたくさんあります。このため、このフォルダー構造のどの部分をgitリポジトリに追加する必要があるのか疑問に思います。通常、バイナリファイルをコミットするのは非常に悪い習慣だと思います。そのため、通常、bin/
、obj/
、*.o
、*.pyc
などのパターンを.gitignore
に追加して、Gitリポジトリーのみが提供するもので汚染しないようにします。マージの競合を作成します。
確かにwww
をgitに追加する必要がありますが、プロジェクトの他の部分についてはどうでしょう。ソースコードの製品はどの程度まで拡張され、プロジェクト構成はどの程度まで拡張されますか?
職業はなんですか?私は新しいので、ここで何が理にかなっているのかほとんどわかりません...
答えは、phongapアプリを開発しているプラットフォームと、標準のディレクトリ構造に従っているかどうかによって異なります。
プロジェクトのディレクトリ構造が標準の場合、この gitignore から始めて、必要に応じて変更できます。
経験則では、bin/
やgen/
ディレクトリなど、生成されたすべてのファイルを除外する必要があります。アプリのAndroidバージョンを開発している場合は、*.apk
のようなビルドファイルを除外する必要があります。
Android
サブディレクトリで生成されたすべてのファイルも除外する必要があります。
Android/bin/
Android/gen/
Android/assets/
@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でサポートされているもの(つまり、画面の向きのサポート)以外でプラットフォーム固有のアプリコード/構成をカスタマイズするのが少し難しくなることです。
この Gist には、plugins
およびplatforms
ディレクトリをコミットしないプロジェクトを処理するためのより完全なスクリプトが含まれています。これは、アイコンとスプラッシュスクリーン画像をwwwからプラットフォームディレクトリ(iOSおよびAndroid用)にコピーし、プラグインをインストールし、バージョン管理に追加するプラットフォーム固有のファイルを処理するメカニズムを提供します。
もう1つ Gist があります。これは、上記のbashスクリプトのGruntポートです。 (うなり声を示唆してくれた@obieに感謝します)。
だから私は試行錯誤を通してこれを理解しました。 phonegapローカルビルドまたはリモートビルドを使用している場合、platforms
ディレクトリは省略できます。その場で生成されます。隠しフォルダーを含む他のすべてのフォルダー.cordova
は必須です。
私はこの問題と私たちが最終的に従ったアプローチに関する私の経験をここに残したかっただけです。
Phonegapプロジェクトでは、.gitignoreファイルを使用して、フォルダー/ platform以外のすべてのファイルをコミットし始めました。開発者がリポジトリのクローンを作成したときに実行すべきアクションは、実行することだけだと考えました。
phonegap/cordovaプラットフォームを追加
しかし、そうではありませんでした。プラットフォームが追加されてコンパイルしようとすると、エラーが表示され、アプリがデバイスにインストールされませんでした。
ログを見ると、このエラーはプラグインが原因であるというヒットがありました。そこで、プロジェクトで使用していたすべてのプラグインを再インストールし、アプリが正しく実行されるようにすることにしました。
そのため、フォルダープラットフォームとプラグインを除くすべてのコンテンツをリポジトリに保存することをお勧めします。プロジェクトで使用されるプラグインのリストを含むファイルREADME=を作成して、リポジトリにアップロードします。
このように、開発者がリポジトリを複製するとき、彼/彼女は以下をしなければなりません:
1.-プラットフォームの追加:phonegap/cordova add platform "platform"
2.-プラグインを追加:phonegap/cordova plugin add "plugin"
お役に立てれば!
よろしく。
このようなものの多くは古く、Apache Cordovaの最新バージョンには実際には適用されません。 Apache Cordova 5.1.1を使用しています。この.gitignoreを使用すると、AndroidとIOS。 .gradleが使用されているため、削除しないでください!
www/
.gradle/
build/
.tmp/
.temp/
coverage/
*.log
node_modules/
bower_components/
個人的な好みではありますが、私はこれを使用しました(Androidのみのプロジェクト)。ほとんどを削除しますが、カスタムは保持します
ToonPlane/platforms/Android/*
!ToonPlane/platforms/Android/AndroidManifest.xml
ToonPlane/plugins/*
!ToonPlane/plugins/Android.json
!ToonPlane/plugins/fetch.json