Подтвердить что ты не робот

Какие части созданных проектов cordova cli можно безопасно версировать в системе управления версиями?

Я ищу Cordova CLI вместо домашнего решения ant для управления командной строкой проекта phonegap/cordova. Мне интересно, какие части дерева каталогов, если они есть, не должны находиться под контролем версий?

4b9b3361

Ответ 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