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

moo*_*eds 37 version-control cordova

我正在寻求使用Cordova CLI而不是家庭成长的ant解决方案来进行phonegap/cordova项目的命令行管理.我想知道目录树的哪些部分(如果有的话)不应该置于版本控制之下?

Dev*_*eks 23

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

对于很多项目来说,./www文件夹就足够了,但是根据你正在使用的cli的哪些方面,还有一些其他文件夹可能很好用.

例子:

  • ./merges 用于特定于平台的HTML/CSS/JS覆盖
  • ./.cordova 用于cli钩子(如before_build,after_plugin_add等)

以及您./www在开发过程中可能想要保留的任何其他自定义.例如,我有一个./src文件夹,内容被连接并添加到./www我们的构建过程中.我们的单元测试也在外面./www.

而不是包含一个特定的文件夹,我有一个.gitignore保持构建文件像./platforms/*./plugins/*版本控制之外的文件.

  • 你能解释为什么`plugins`和`platform`的某些部分应该被忽略?假设我在'AndroidManifest.xml`中需要进行一些修改?`插件`我只是简单地不明白.插件是否存储在其他位置,以便在构建该目录时填充? (10认同)
  • 根据我过去几个月的经验,我在本书的示例章节中扩展了这个答案:https://leanpub.com/developingwithcordovacli/read#leanpub-auto-version-control (3认同)
  • 如果你是.gitignoring plugins/*,你是如何在第一次克隆它后初始化这个目录的? (3认同)
  • 最新版本的cordova有一个名为'hooks'的独立文件夹,在版本控制下可能不再需要添加'.cordova'文件夹 (2认同)

Seb*_*ber 14

2015年 - 科尔多瓦5.1.1答案

在使用3.4.0到5.1.1的Cordova项目工作一段时间之后,这是我的反馈!

我的.gitignore文件看起来像:

*~
**~
platforms/**
plugins/**
Run Code Online (Sandbox Code Playgroud)

您需要的www/ .cordova和其他文件夹是版本化的.

我的.cordova文件夹当前是空的(我以前在没有.cordova文件夹时有一些错误,可能不再是这种情况)

所有插件和平台都应该注册到config.xml文件中.

如果你通过命令行添加插件,使用cordova plugin add $pluginName --save --shrinkwrap- >它会自动添加插件config.xml并修复版本号,使得Cordova项目更容易在开发人员之间共享.

阅读特色作者,了解有关它的更多信息以及有关共享cordova项目的信息.

插件config.xml允许插件在安装平台时安装在其他开发人员计算机上.没有它,他们将需要添加自己的插件.

不知何故,这些config.xml行为就像一个package.jsonNPM项目.但我仍然不知道如何处理添加的新插件,据我所知,插件只在平台安装期间安装,没有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>
Run Code Online (Sandbox Code Playgroud)

平台不会自动安装(据我所知),但至少当用户安装平台时,他将获得正确的平台版本!

其他一些人正在使用Plugman,一种用于管理Cordova插件的工具(尚未测试).