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.

Наприклад, однією з проблем є плагіни. Коли я видаляю папку плагінів зі сховища, я повинен додавати їх на кожній моїй розробницькій платформі вручну.

Інша проблема - папка ресурсів. Я автоматично створюю піктограми та заставки, використовуючи іонні. Коли я зараз намагаюся побудувати проект на 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 та плагіни.


Це також працює для існуючих плагінів та платформ. Кордова просто проігнорує повторну установку, але додасть плагін до конфігураційного файлу.
rnevius

4
cordova buildне відновлював платформи, але cordova prepareна Cordova 6.0.
Віктор Сергієнко

42
Якщо ви забули --saveплатформи та плагіни, просто використовуйте cordova platform saveта cordova plugin save(примітка ні --), і він додасть відповідні рядки до вашого config.xml.
jcaron

1
це добре працювало, platformsале не для plugins. cordova prepareне працюватиме, принаймні , plugin.xmlі src. я здався і просто врятував все pluginsдо git.
Jayen,

6
станом на 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 і зробити a cordova prepareна інших системах.
Jayen

Здається, цей файл ігнорування містить багато створених файлів, тому, я думаю, він повинен бути більш вузьким.
Андерс Лінден,

1
Чи повинен він також включати node_modules? Я зробила.
Cameron A. Ellis

@ 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
З. Хулла

також я бачив, як радять не ігнорувати блокування пакетів
З. Хулла

@ z-khullah у наданому посиланні подано "Необов'язково ігнорувати плагін Git clones", оскільки іноді ми змінюємо код в них, тому не можемо ігнорувати всі файли. В ідеалі ми можемо ігнорувати, але в Інтернеті є поради, пов’язані з проблемами в плагінах, особливо як новачкові в Кордові це допоможе. замок пакета змінює 10 або 20 рядків кожного разу, коли змінюється якийсь інсталяційний модуль плагіна, тому це також те, що ми не хочемо переглядати, а також, додавши файл блокування igoring, у нас досі не виникає проблем, він генерується з пакета. json. Сподіваємось, це допомагає дати наш погляд.
Манохар Редді Поредді

Так, але шаблон робить те саме, лише з меншою кількістю ліній. Що стосується блокування пакетів, то це допомагає налагоджувати, оскільки відображає точну структуру node_modules, але так, я думаю, що це необов’язково
З. Хулла


3

Я виконав ці кроки:

  • створити проект Кордова

  • додати платформи

  • додати плагіни -

Перед побудовою проекту я фіксую та штовхаю згенеровані файли. Після того, як я будую проект і перевіряю наявність нових файлів. Я отримав їх, щоб додати в .gitignore:

/platforms/android/gradlew.bat

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

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

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

/platforms/android/gradlew.bat

/ платформи / android / CordovaLib / build

/platforms/android/.gradle


0

Я додаю до списку Niko:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

і

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

2
Їх, як правило, добре ігнорувати, не характерно для Кордови (як, наприклад .DS_Store, немає у відповіді Ніко).
Ярі Кейнянен,

Ймовірно, їх слід розглядати у глобальному gitignore , а не на рівні проекту.
bdesham
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.