Cordova 5.0.0:どのファイルをgitにコミットする必要がありますか?


89

Cordova 5.0.0を使用していますが、次のプロジェクト構造があります。

MyProject
    - hooks
    - platforms
    - plugins
    - resources
    - www
    - config.xml

私の質問は次のとおりです:これらのフォルダーのどれを省略できますか?私は3つの異なるプラットフォームで作業しているので、質問します。私は、AndroidのLinux、Windows PhoneのWindows、iOSのMacで開発しています。プロジェクト全体をコミットすると、サポートされていないプラットフォームに対して常に警告とエラーが発生します。

私が欲しいのはミニマルなgitリポジトリです。

たとえば、1つの問題はプラグインです。リポジトリからプラグインフォルダーを削除するときは、開発中の各プラットフォームに手動で追加する必要があります。

別の問題は、リソースフォルダーです。Ionicを使用してアイコンとスプラッシュスクリーンを自動的に生成します。私が今iOSでプロジェクトをビルドしようとすると、それはAndroidの画像について不平を言っています。

それで、私は何が必要で何を省略できますか?

回答:


122

プラットフォームとプラグインディレクトリにカスタムコードを追加していない限り、それらを無視できます。

プラグインとプラットフォームを追加するときは、コマンドに--saveを追加します。例えば

cordova platform add ios@3.8.0 --save

または

cordova plugin add cordova-plugin-device --save

これにより、使用するプラグインとプラットフォームの記録がconfig.xmlファイルに保存されます。あなたが実行したときcordova prepareか、cordova buildあなたのプラグインとconfig.xmlに記載されているプラットフォームのすべての彼らはまだされていない場合はインストールされます。

準備とビルドでプラットフォームを指定することもできます。Macを使用している場合は、gitリポジトリをチェックアウトして実行cordova prepare iosし、iOSプラットフォームとプラグインのみをインストールできます。


これは、既存のプラグインとプラットフォームでも機能します。Cordovaは単に再インストールを無視しますが、プラグインを構成ファイルに追加します。
rnevius

4
cordova buildプラットフォームを復元しませんでしたcordova prepareが、Cordova 6.0で復元しました。
Victor Sergienko 2016年

42
--saveプラットフォームとプラグインを忘れた場合は、cordova platform saveand cordova plugin save(使用しないでください--)を使用するだけで、関連する行がに追加されますconfig.xml
jcaron 2016年

1
これはうまくいきましたplatformsが、ではうまくいきませんでしたpluginscordova prepare少なくともでは動作しないだろうplugin.xmlsrc。私はあきらめて、すべてpluginsをgitに保存しました。
Jayen

6
Cordova 7.0.0以降、デフォルトの動作は保存に変更されました。 cordova.apache.org/news/2017/05/04/cordova-7.html
Dixit

42

プラットフォームによって異なります。

この.gitignoreの例を使用して、必要に応じてカスタマイズできます。

# Mac
.DS_Store

# iOS
platforms/ios/build/
platforms/ios/www/
platforms/ios/cordova/console.log
*.xcuserdatad

# android
platforms/android/assets/www
platforms/android/bin
platforms/android/gen
platforms/android/local.properties
platforms/android/ant-build
platforms/android/ant-gen
platforms/android/CordovaLib/ant-build
platforms/android/CordovaLib/ant-gen
platforms/android/CordovaLib/bin
platforms/android/CordovaLib/gen
platforms/android/CordovaLib/local.properties

# wp8
platforms/wp8/bin
platforms/wp8/obj
platforms/wp8/www
platforms/wp8/.staging
platforms/wp8/*.suo
platforms/wp8/*.csproj.user

# res
resources/signing

platform / android / resも無視するのは理にかなっているのではないでしょうか?AFAIK / understnad、これらはビルドプロセス中に作成されます(親(プロジェクト)ディレクトリのres / resourcesフォルダーから)。
Tomer Cagan

4
platforms/*/Cordova 6.3.0で無視しcordova prepareて、他のシステムでaを実行することができました。
Jayen

この無視ファイルには生成されたファイルがたくさん含まれているようですので、もっと狭くする必要があると思います。
AndersLindén2017年

1
それも含めるべきnode_modulesですか?やった。
キャメロンA.エリス

@ CameronA.Ellis私はnode_modulesどちらかを持っています。追加しましたか?これらのノードモジュールをダウンロードする方法はありませんか。
wviana

18

次のコマンドを使用して、後でプラットフォームとプラグインを保存できます。

プラットフォームの大量節約

$ cordova platform save

プラグインの大量節約

$ cordova plugin save

上記のコマンドには-がないことにご注意ください

さらに、別のマシンでリポジトリをフェッチした後、次のコマンドを実行してプラグインとプラットフォームを自動的に生成してフェッチします

$ cordova prepare

詳細については、以下のリンクにアクセスしてください。 https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Cordovaのヒント:適切な解決策を得るには、何よりも前に常に公式ドキュメントを参照してください。



4

他の回答のほとんどは2/3年前のものです。

2019アップデート:

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

# ========== Cordova - platforms
# android
# platforms/android/app/src/main/assets
# platforms/android/app/src/main/AndroidManifest.xml
# platforms/android/app/src/main/res/drawable-*
# platforms/android/app/src/main/res/mipmap-*
# platforms/android/app/src/main/res/xml/config.xml
# browser
# platforms/browser/app/src/main/assets
# platforms/browser/config.xml
# platforms/browser/www
#
# ========== Cordova - plugins - remove all except json & xml
# plugins/**/.DS_Store
# plugins/**/*.cs
# plugins/**/*.h
# plugins/**/*.java
# plugins/**/*.js
# plugins/**/*.m
# plugins/**/*.map
# plugins/**/*.md
# plugins/**/*.modulemap
# plugins/**/*.ts
# plugins/**/LICENSE
# plugins/**/NOTICE
# plugins/**/*.gradle
# plugins/**/tests/

ご覧のとおり、ほとんどの行(#で始まるすべての行)にコメントしました。これは、プラグインのバージョン変更で問題が発生し、プラグインの更新で何が起こっているのかを知ることにしたためです。 基本的にすべてのプラットフォームとプラグインのファイルがコミットに含まれているので、私の人生は平和です。

2019:
私はこれについて述べまし

アプリを開発して公開した後、次のようになりました:(
下から逸脱している場合は、下のコメントにコメントしてください。互いに学ぶことができます)

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# Cordova - platforms
platforms

# Cordova - plugins - remove all except json & xml
plugins/**/.DS_Store
plugins/**/*.cs
plugins/**/*.h
plugins/**/*.java
plugins/**/*.js
plugins/**/*.m
plugins/**/*.map
plugins/**/*.md
plugins/**/*.modulemap
plugins/**/*.ts
plugins/**/LICENSE
plugins/**/NOTICE
plugins/**/*.gradle
plugins/**/tests/

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

1
あなたは単にplugins/*それ!plugins/**/*.jsonを行うことができます!plugins/**/*.xml
Z. Khullah

また、私はパッケージロックを無視しないようにアドバイスされているのを見ました
Z. Khullah

提供されたリンクの@ z-khullahでは、「プラグインGitクローンを無視するオプション」が表示されます。これは、コードを変更する場合があるため、すべてのファイルを無視できないためです。理想的には無視できますが、プラグインの問題に起因するオンラインの提案があります。特に、cordovaの初心者のために役立ちます。パッケージロックは、プラグインのインストールが変更されるたびに数十行または数十行を変更するため、これもコードレビューに含めたくないものであり、ロックファイルを無視することによって、これまで問題がなかったため、パッケージから生成されます。 json。私たちの視点を与えるのに役立つことを願っています。
Manohar Reddy Poreddy

はい、ただしパターンは同じことを行いますが、行数は少なくなります。package-lockに関しては、正確なnode_modules構造を示しているためデバッグに役立ちますが、そうです、それはオプションであると思います
Z. Khullah


3

私はこれらのステップに従いました:

  • Cordovaプロジェクトを作成する

  • プラットフォームを追加する

  • プラグインを追加する

プロジェクトをビルドする前に、生成されたファイルをコミットしてプッシュします。プロジェクトをビルドして、生成された新しいファイルを確認した後。これらを.gitignoreに追加しました:

/platforms/android/gradlew.bat

/ platforms / android / build

/ platforms / android / gradle

/ platforms / android / libs

/platforms/android/gradlew.bat

/ platforms / android / CordovaLib / build

/platforms/android/.gradle


0

私はニコリストに追加します:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

そして

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt

2
これらは一般的に無視するのに適していますが、コルドバに固有のもので.DS_Storeはありません(ニコの回答にもありません)。
JariKeinänen16年

これらはおそらくプロジェクトレベルではなく、グローバルgitignoreで対処する必要があります。
bdesham
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.