.gitignore for PhoneGap/Cordova 3.0项目 - 我该怎么做?

jon*_*sfj 105 git cordova cordova-3

我刚刚尝试创建一个新的phonegap 3.0项目...注意:我是phonegap的新手.无论如何,我看到项目文件夹包含:

  • .cordova
  • merges
  • platforms
  • plugins
  • www

我试过phonegap local run android看到很多二进制/生成的文件platforms/android.这让我想知道,我应该将这个文件夹结构的哪些部分添加到我的git存储库中.通常,我认为提交二进制文件是非常糟糕的做法.因此,我通常会添加模式,如bin/,obj/,*.o,*.pyc等,以.gitignore避免污染我的git仓库的东西,只有用于创建合并冲突.

当然,www应该添加到git,但是项目的其他部分呢.它们的源代码产品到底有多大,它们的项目配置有多大?

你是做什么?当然我很新,所以我几乎不明白这里有什么意义......

Jon*_*xon 49

扩展@Jake Moshenko回答:

我喜欢省略platforms目录的想法.事实上,我能够排除pluginsplatforms目录.一个很好的起点.gitignore:

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

这样做的问题是必须初始化repo的干净副本才能真正使用它.创建一个init脚本可能是有意义的,例如:

#!/bin/bash
textReset=$(tput sgr0)
textGreen=$(tput setaf 2)
message_info () {
  echo "${textGreen}[my-app]${textReset} $1"
}

message_info "Creating necessary directories..."
mkdir plugins
mkdir platforms

message_info "Adding platforms..."
# If using cordova, change to: cordova platform add android
phonegap build android
phonegap build ios

message_info "Adding plugins..."
# If using cordova, change to: cordova plugin add
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
Run Code Online (Sandbox Code Playgroud)

这种方法的一个警告是,在phonegap/cordova支持的范围之外(即屏幕方向支持),定制特定于平台的应用程序代码/配置会更具挑战性.

更新:Bash Gist

这个要点包含一个更完整的脚本,用于处理不提交pluginsplatforms目录的项目.它提供了一种机制,用于将图标和启动画面图像从www复制到平台目录(适用于iOS和Android),安装插件以及处理应添加到版本控制的平台特定文件.

更新:Grunt Gist

这是另一个要点,它是上面提到的bash脚本的Grunt端口.(感谢@obie提出的咕噜声).

  • 获得关于问题的观点的+1 (3认同)
  • 您可以通过在每个文件夹中添加.gitkeep文件并将其放入.gitignore中来避免创建插件和平台文件夹的步骤:platforms/*!platforms/.gitkeep plugins/*!plugins/.gitkeep (3认同)
  • 我将如何处理添加定制插件/本机代码或进行AndroidManifest.xml更改以适应使用此方法的插件开发?是否可以添加AndroidManifest.xml更改的其他位置? (2认同)

Atr*_*opo 43

答案取决于您正在开发phongap应用程序的平台,以及您是否遵循标准目录结构.

如果您的项目目录结构是标准的,那么您可以从这个gitignore开始并根据您的需要进行修改.

根据经验,您必须排除所有生成的文件,如bin/gen/目录.如果您正在开发Android版本的应用程序,则应该排除构建文件*.apk.

android还应排除子目录中的所有生成文件:

Android/bin/
Android/gen/
Android/assets/
Run Code Online (Sandbox Code Playgroud)


小智 7

所以我只是通过反复试验来解决这个问题.platforms如果您正在使用phonegap本地或远程构建,则可以省略该目录,因为它是动态生成的.所有其他文件夹,包括隐藏文件夹.cordova都是必需的.

  • 这个建议完全错误.您不应该省略platform目录,因为如果您正在做任何非常重要的事情,最终需要添加一些特定于平台的代码和插件.您还经常需要操纵android清单和ios plists. (7认同)
  • 嗨,如果我使用一些第三方jar文件或objective-c源文件来自定义android或ios构建,例如,Parse Notification集成,该怎么办?它肯定需要编写一些java代码,然后如何管理git存储库?将phonegap本地构建android覆盖我的自定义文件? (4认同)
  • 我会说省略平台是一个好的开始.如果存在依赖关系,则应将其保留在其他位置,并在添加平台后将其复制为构建步骤. (3认同)