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