Cordova 5.0.0: какие файлы я должен передать в git?

89

Я использую Cordova 5.0.0, и у меня следующая структура проекта:

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

У меня вопрос: какую из этих папок я могу пропустить? Я спрашиваю, потому что работаю на трех разных платформах. Я занимаюсь разработкой на linux для android, windows для windows phone и на mac для ios. Если я фиксирую весь проект, я всегда получаю предупреждения и ошибки для неподдерживаемых платформ.

Мне нужен минималистичный репозиторий git.

Например, одна проблема - плагины. Когда я удаляю папку плагинов из репозитория, мне приходится добавлять их на каждую из моих платформ разработки вручную.

Еще одна проблема - это папка ресурсов. Я автоматически генерирую значки и заставки с помощью ionic. Когда я сейчас пытаюсь собрать проект на ios, он жалуется на изображения для android.

Итак, что мне нужно, а что можно пропустить?

Mulgard
источник

Ответы:

121

Вы можете игнорировать каталоги платформ и плагинов, если вы не добавили в них какой-либо собственный код.

При добавлении плагинов и платформ добавьте в команду --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 и плагины.

Коннор
источник
Это также работает для существующих плагинов и платформ. Кордова просто проигнорирует повторную установку, но добавит плагин в файл конфигурации.
rnevius
4
cordova buildне восстанавливал платформы, но cordova prepareделал на Кордове 6.0.
Виктор Сергиенко
43
Если вы забыли --saveплатформы и плагины, просто используйте cordova platform saveи cordova plugin save(заметьте нет --), и он добавит соответствующие строки в ваш config.xml.
jcaron
1
это сработало, platformsно не для plugins. cordova prepareне будет работать хотя бы с plugin.xmlи src. Я сдался и просто сохранил все pluginsв git.
Джейен,
7
начиная с Cordova 7.0.0 поведение по умолчанию было изменено на сохранение. cordova.apache.org/news/2017/05/04/cordova-7.html
Кинджал Диксит
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
Нико
источник
не имело бы смысла игнорировать также платформы / android / res? AFAIK / understnad, они создаются в процессе сборки (из папки res / resources в родительском (проектном) каталоге).
Томер Каган
4
Я смог проигнорировать platforms/*/с Cordova 6.3.0 и сделать cordova prepareна других системах.
Jayen
Этот файл игнорирования, кажется, включает в себя множество сгенерированных файлов, поэтому, я думаю, он должен быть более узким.
Андерс
1
Должен ли он также включать node_modules? Я сделал.
Кэмерон А. Эллис
@ 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

Совет Кордовы : всегда прежде чем что-либо делать, обращайтесь к официальным документам, чтобы найти правильное решение.

Хитеш Чавда
источник
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
Бернардо Даль CORNO
также я видел, что советуют не игнорировать блокировку пакетов
Бернардо Дал Корно
@ z-khullah в предоставленной ссылке указано «Необязательно игнорировать клоны Git плагина», потому что иногда мы меняем в них код, поэтому не можем игнорировать все файлы. В идеале мы можем игнорировать, но есть онлайн-предложения из-за проблем с плагинами, особенно для новичков в кордове, это поможет. package-lock меняет 10 или 20 строк каждый раз, когда изменяется установка какого-либо плагина, так что это тоже то, что мы не хотим проверять по коду, также из-за igoring lock file у нас не было никаких проблем до сих пор, он генерируется из package. json. Надеюсь, что это поможет нам понять нашу точку зрения.
Manohar Reddy Poreddy
Да, но шаблон делает то же самое, только с меньшим количеством линий. Что касается блокировки пакета, он помогает отладке, поскольку показывает точную структуру node_modules, но да, я думаю, что это необязательно,
Бернардо Даль Корно
1
@ManoharReddyPoreddy stackoverflow.com/questions/44206782/…
Adit Saxena
3

Я выполнил следующие шаги:

  • создать проект кордова

  • добавить платформы

  • добавить плагины

Перед сборкой проекта я фиксирую и отправляю сгенерированные файлы. После создания проекта и проверки наличия новых файлов. Мне нужно добавить их в .gitignore:

/platforms/android/gradlew.bat

/ платформы / android / build

/ платформы / android / gradle

/ платформы / android / libs

/platforms/android/gradlew.bat

/ платформы / 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и в ответе Нико).
Яри ​​Кейнянен
Их, вероятно, следует решать в глобальном gitignore , а не на уровне проекта.
bdesham