Version control cordova cli生成的项目的哪些部分可以在源代码管理中安全地进行版本控制?

Version control cordova cli生成的项目的哪些部分可以在源代码管理中安全地进行版本控制?,version-control,cordova,Version Control,Cordova,我希望使用phonegap/cordova项目的命令行管理,而不是使用一个自主开发的ant解决方案。我想知道目录树的哪些部分,如果有的话,不应该置于版本控制之下?好吧,你控制什么是你自己的选择,尽管,我个人只会在www文件夹上使用版本控制,因为所有的编码和存储内容都在那里(html、css、js、图像、音频等),其余的都是静态内容(在大多数情况下)这取决于您的项目和工作流程 对于许多项目,如前所述,/www文件夹就足够了,但是根据您使用的cli的哪些方面,还可以使用一些其他文件夹 示例: /m

我希望使用phonegap/cordova项目的命令行管理,而不是使用一个自主开发的ant解决方案。我想知道目录树的哪些部分,如果有的话,不应该置于版本控制之下?

好吧,你控制什么是你自己的选择,尽管,我个人只会在
www文件夹上使用版本控制,因为所有的编码和存储内容都在那里(
html、css、js、图像、音频等
),其余的都是静态内容(在大多数情况下)

这取决于您的项目和工作流程

对于许多项目,如前所述,
/www
文件夹就足够了,但是根据您使用的cli的哪些方面,还可以使用一些其他文件夹

示例:

  • /merges
    用于特定于平台的HTML/CSS/JS覆盖
  • /.cordova
    用于cli挂钩(如构建前、插件添加后等)
另外,在开发过程中,您可能希望避免使用
/www
的任何其他自定义内容。例如,我有一个
/src
文件夹,作为构建过程的一部分,内容被连接并添加到
/www
。我们的单元测试也在
/www
之外


我没有包括一个特定的文件夹,而是有一个
.gitignore
,它使像
/platforms/*
/plugins/*
这样的构建人工制品不受版本控制。

不幸的是,我不能只添加一条评论,所以这里是我对@blockhead和Sebastien Lorber的回复:

无需保存文件夹“platform”甚至文件“AndroidManifest.xml”(或其他平台的任何配置文件)中的文件您可以在“config.xml”中指定首选项,它将影响这些生成的特定于平台的配置文件(例如AndroidManifest)-请参阅


然后您可以在版本控制下只使用文件夹“www”和文件“config.xml”。

2015-Cordova 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
就像NPM项目的
package.json
。但我仍然不知道如何处理添加的新插件,据我所知,插件仅在平台安装期间安装,没有
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="info@xxx.co" 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>

xxx
你的知识网络

,一种用于管理Cordova插件(尚未测试)的工具。

如果任何人想将Cordova CLI android platform Center(android混合复杂项目)的代码编码到subversion中,则在与团队一起开发时,可以排除这些文件:

// to exclude files into repo
.gitignore
.gradle
.idea
local.properties
android.iml

/build
/gradlew
/gradlew.bat
/gradle

CordovaLib/CordovaLib.iml
如果任何人在仅从磁盘导入Gradle选项的项目而非android studio的内置subversion客户端时遇到svn错误,则以下链接将对您有所帮助:

自v2.9以来,我一直是cordova开发人员,排除平台和插件文件夹的典型建议大部分时间都有效。。。。除非它没有

我注意到,在一个项目中,感觉它使用了人类已知的每个插件,这个咒语已经崩溃,我无法轻松地在版本控制中来回切换并可靠地生成新版本

这有几个原因:

苹果改变了现状,随着时间的推移,需要在项目中添加一些cordova黑客,以使其可靠。例如,iOS 10增加了一项要求,即如果您使用相机,则需要指定您使用相机的目的,否则当您尝试时,应用程序将崩溃。当我在等待摄像头插件修复这个问题时,我需要编辑iOS源文件,然后过了一段时间我需要构建一个旧版本,并解决这些问题

但真正的痛苦是插件偏离科尔多瓦的工作方式。我指的这个项目使用Adobe Aviary/Image editing SDK。他们的指示是安装插件,复制一些单独下载的sdk文件,然后再次安装。我试着编写一个不会杀死它的脚本,但结果只是我现在将插件和平台目录提交到应用程序中——这样我就可以回到过去,可靠地重新创建一个构建

是的,它增加了源代码管理的规模,是的,我很想做得“正确”,但它让我很痛苦。只有我的0.02美元

<代码> TL/DR-当您开始使用多个插件时,您可能需要考虑将平台和插件文件夹添加到源代码控制< /COD>


更新2019-11-05

对于我提到的项目,我们已经承诺只使用正确集成的东西,现在我认为最好不要将平台检查到sourc中