Я ищу Cordova CLI вместо домашнего решения ant для управления командной строкой проекта phonegap/cordova. Мне интересно, какие части дерева каталогов, если они есть, не должны находиться под контролем версий?
Какие части созданных проектов cordova cli можно безопасно версировать в системе управления версиями?
Ответ 1
Это зависит от вашего проекта и рабочего процесса.
Для большого количества проектов папка ./www
будет достаточной, как уже упоминалось, однако есть и другие папки, которые могут быть хорошими в зависимости от того, какие аспекты cli вы используете.
Примеры:
-
./merges
для переопределения HTML/CSS/JS для платформы. -
./.cordova
для cli hooks (например, before_build, after_plugin_add и т.д.)
Кроме всего прочего, вы можете не использовать ./www
во время разработки. Например, у меня есть папка ./src
, и содержимое конкатенируется и добавляется к ./www
как часть нашего процесса сборки. Наши модульные тесты также находятся за пределами ./www
.
Вместо того, чтобы включать определенную папку, у меня есть .gitignore
, который сохраняет артефакты сборки, такие как ./platforms/*
и ./plugins/*
вне контроля версий.
Ответ 2
2015 год - Кордова 5.1.1 ответ
После работы в течение некоторого времени с проектом Cordova от 3.4.0 до 5.1.1, здесь моя обратная связь!
Мой файл .gitignore
выглядит так:
*~
**~
platforms/**
plugins/**
www
/.cordova
и другие папки, которые вам нужны, являются версиями.
Моя папка .cordova
в настоящее время пуста (у меня были некоторые ошибки, когда нет .cordova
, возможно, это не так)
Все плагины и платформы должны быть зарегистрированы в файле config.xml
.
Если вы добавляете плагины по командной строке, используйте cordova plugin add $pluginName --save --shrinkwrap
→ , который автоматически добавит плагин на config.xml
и исправьте номер версии, что упростит совместное использование проекта Cordova среди разработчиков.
Подробнее об этом и о совместном использовании проектов cordova, автор функций.
Наличие плагинов в config.xml
позволяет устанавливать плагины на других компьютерах-разработчиках при установке платформы. Без этого им нужно будет добавить плагин.
Как-то config.xml
действует как package.json
для проектов NPM. Но я до сих пор не знаю, как обрабатывать новый добавленный плагин, насколько я знаю, что плагины установлены только во время установки платформы, нет эквивалента npm insall/update
(но вы можете удалить/переустановить платформу).
Вот пример config.xml
из моего проекта:
<?xml version='1.0' encoding='utf-8'?>
<widget id="co.xxx" version="0.2.6" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:gap="http://phonegap.com/ns/1.0">
<name>xxx</name>
<description>
Your Knowledge Network
</description>
<author email="[email protected]" href="https://xxx.co">
xxx
</author>
<content src="index.html" />
<preference name="permissions" value="none" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="android-minSdkVersion" value="14" />
<preference name="android-targetSdkVersion" value="22" />
<preference name="phonegap-version" value="cli-5.1.1" />
<plugin name="cordova-plugin-device" spec="1.0.1" />
<plugin name="cordova-plugin-console" spec="1.0.1" />
<plugin name="cordova-plugin-whitelist" spec="1.1.0" />
<plugin name="cordova-plugin-crosswalk-webview" spec="1.2.0" />
<access origin="*" />
<allow-intent href="*" />
<engine name="browser" spec="^3.6.0" />
<engine name="android" spec="^4.0.2" />
<plugin name="cordova-plugin-statusbar" spec="^1.0.1" />
</widget>
Платформы не устанавливаются автоматически (насколько я знаю), но, по крайней мере, когда пользователь устанавливает платформу, он получит правильную версию платформы!
Некоторые другие люди используют Plugman, инструмент, предназначенный для управления плагинами Cordova (еще не протестирован).
Ответ 3
Ну, что у управления - это ваш собственный выбор, хотя я бы использовал только управление версиями на www folder
, так как здесь все ваше кодирование и сохраненный контент (html, css, js, images, audio, etc
), все остальное будет статическим контента (в большинстве случаев)
Ответ 4
К сожалению, я не могу добавить только комментарий, так что вот мой ответ для @blockhead и Sebastien Lorber:
Нет необходимости сохранять файлы из "платформы платформы" даже файла "AndroidManifest.xml" (или любого файла конфигурации для другой платформы). Вы можете указать свои настройки в "config.xml", и это повлияет на эти сгенерированные файлы конфигурации конкретной платформы (например, AndroidManifest) - см. телефонная задержка документация.
Затем вы можете иметь только папку управления версиями "www" и файл "config.xml".
Ответ 5
Если кто-то захочет кодировать платформу Android-платформы Cordova CLI с центром (проект Android Hybrid) в subversion, то эти файлы могут быть исключены при разработке с командой:
// to exclude files into repo
.gitignore
.gradle
.idea
local.properties
android.iml
/build
/gradlew
/gradlew.bat
/gradle
CordovaLib/CordovaLib.iml
Если у кого-то возникают проблемы с ошибкой svn, а проект импорта Gradle с диска - только не встроенный клиент subversion для android studio, то следующая ссылка вам будет полезна: fooobar.com/questions/59921/...
Ответ 6
Я был кордовой dev с версии v2.9, и типичный совет по исключению папок платформы и плагинов работает большую часть времени... за исключением тех случаев, когда это не так.
Я заметил в проекте, который чувствует, что он использует каждый плагин, известный человеку, что эта мантра сломалась, и я не могу легко вернуться взад и вперед по контролю версий и надежно создать новую сборку.
Это происходит по нескольким причинам:
Apple меняет ситуацию, и по прошествии времени есть ряд кордовых хаков, которые нужно добавить в проект, чтобы он был надежным. Например, в iOS 10 добавлено требование о том, что если вы используете камеру, вам нужно указать, для чего вы ее использовали, - или приложение будет сбой при попытке. В то время как я ожидал, что плагин камеры исправит это, мне нужно было отредактировать исходные файлы iOS, а затем, спустя некоторое время, мне нужно было создать старую версию и вкратце проблемы.
Но настоящая боль заключается в том, что плагины отклоняются от кордовы. Этот проект, который я имею в виду, использует SDK Adobe Aviary/Image editing. Их инструкции - установить плагин, скопировать некоторые файлы sdk, загруженные отдельно, а затем установить его снова. Я попробовал сделать script, который не убьет его, но в итоге это было то, что я теперь передаю приложение плагинов и платформ в приложение - таким образом, я могу вернуться во времени и надежно воссоздать сборку.
Да, он добавляет больше размера в исходный контроль, да, я бы очень хотел сделать это "правильно", но он сильно укусил меня. Только мои $0.02
TL/DR - When you starting working with more than a couple of plugins, you might need to consider adding the platforms and plugins folder to source control