Cordova 5.0.0:我应该将哪些文件提交到git?


89

我使用Cordova 5.0.0,并且我具有以下项目结构:

MyProject
    - hooks
    - platforms
    - plugins
    - resources
    - www
    - config.xml

现在我的问题是:我可以忽略其中哪个文件夹?我之所以这样问,是因为我在三个不同的平台上工作。我在android上的linux上开发,在Windows Phone上的Windows上开发,在ios上的mac上开发。如果提交整个项目,对于不支持的平台,我总是会收到警告和错误。

我想要的是一个简约的git存储库。

例如,一个问题就是插件。当我从存储库中删除插件文件夹时,我必须手动将它们添加到每个开发平台上。

另一个问题是资源文件夹。我使用离子自动生成图标和启动屏幕。当我现在尝试在ios上构建项目时,它正在抱怨android的图像。

所以我需要什么,我可以省略什么?

Answers:


122

只要您没有在平台和插件目录中添加任何自定义代码,就可以忽略它们。

添加插件和平台时,在命令中添加--save。例如

cordova platform add ios@3.8.0 --save

要么

cordova plugin add cordova-plugin-device --save

这会将您使用的插件和平台的记录保存到config.xml文件中。当您运行cordova preparecordova build所有的插件和config.xml中列出的平台将被安装,如果他们没有了。

您还可以在准备和构建中指定平台。因此,如果您使用的是Mac,则可以签出git存储库并运行cordova prepare ios以仅安装ios平台和插件。


这也适用于现有的插件和平台。Cordova只会忽略重新安装,而是会将插件添加到配置文件中。
rnevius

4
cordova build没有还原平台,但是cordova prepare在Cordova 6.0上还原了。
Victor Sergienko

42
如果您忘记了--save平台和插件,只需使用cordova platform savecordova plugin save(请注意--),它将在您的中添加相关行config.xml
jcaron

1
这很好,platforms但不是很好pluginscordova prepare至少不能与plugin.xml和一起使用src。我放弃了,只是将所有内容保存plugins到git。
Jayen

6
从cordova 7.0.0开始,默认行为已更改为save。 cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit

42

这取决于平台。

您可以使用.gitignore的示例,并根据需要进行自定义。

# Mac
.DS_Store

# iOS
platforms/ios/build/
platforms/ios/www/
platforms/ios/cordova/console.log
*.xcuserdatad

# android
platforms/android/assets/www
platforms/android/bin
platforms/android/gen
platforms/android/local.properties
platforms/android/ant-build
platforms/android/ant-gen
platforms/android/CordovaLib/ant-build
platforms/android/CordovaLib/ant-gen
platforms/android/CordovaLib/bin
platforms/android/CordovaLib/gen
platforms/android/CordovaLib/local.properties

# wp8
platforms/wp8/bin
platforms/wp8/obj
platforms/wp8/www
platforms/wp8/.staging
platforms/wp8/*.suo
platforms/wp8/*.csproj.user

# res
resources/signing

忽略platform / android / res也有意义吗?AFAIK / understnad,它们是在构建过程中创建的(从父(项目)目录中的res / resources文件夹)。
Tomer Cagan 2015年

4
我能够platforms/*/使用cordova 6.3.0 忽略并cordova prepare在其他系统上执行。
Jayen'8

我认为,此忽略文件似乎包含许多生成的文件,因此它需要更窄。
安德斯·林登

1
还应该包括node_modules吗?是的
卡梅伦·埃利斯

@ CameronA.Ellis我也有node_modules。您添加了吗?没有下载这些节点模块的方法。
wviana '17

18

之后可以使用以下命令保存平台和插件。

节省平台

$ cordova platform save

插件大量节省

$ cordova plugin save

请注意,上述命令中没有-

还有一件事情,在另一台机器上获取回购后,您只需运行以下命令即可自动生成并获取插件和平台

$ cordova prepare

有关更多参考,请访问下面的链接。 https://cordova.apache.org/docs/zh-CN/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Cordova提示:务必先参考官方文档,然后再寻求正确的解决方案。



4

其他大多数答案都是2/3岁。

2019更新:

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

# ========== Cordova - platforms
# android
# platforms/android/app/src/main/assets
# platforms/android/app/src/main/AndroidManifest.xml
# platforms/android/app/src/main/res/drawable-*
# platforms/android/app/src/main/res/mipmap-*
# platforms/android/app/src/main/res/xml/config.xml
# browser
# platforms/browser/app/src/main/assets
# platforms/browser/config.xml
# platforms/browser/www
#
# ========== Cordova - plugins - remove all except json & xml
# plugins/**/.DS_Store
# plugins/**/*.cs
# plugins/**/*.h
# plugins/**/*.java
# plugins/**/*.js
# plugins/**/*.m
# plugins/**/*.map
# plugins/**/*.md
# plugins/**/*.modulemap
# plugins/**/*.ts
# plugins/**/LICENSE
# plugins/**/NOTICE
# plugins/**/*.gradle
# plugins/**/tests/

如您所见,我注释了大多数行(所有以#开头的行)。这是因为我遇到了插件版本更改问题,并决定了解插件更新。 基本上所有平台和插件文件都包含在commit中,现在我的生活很平静。

2019:
我说这个

开发和发布该应用程序后,它变成了下面的内容:(
如果您偏离下面的内容,请在下面发表评论,我们可以互相学习)

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# Cordova - platforms
platforms

# Cordova - plugins - remove all except json & xml
plugins/**/.DS_Store
plugins/**/*.cs
plugins/**/*.h
plugins/**/*.java
plugins/**/*.js
plugins/**/*.m
plugins/**/*.map
plugins/**/*.md
plugins/**/*.modulemap
plugins/**/*.ts
plugins/**/LICENSE
plugins/**/NOTICE
plugins/**/*.gradle
plugins/**/tests/

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

1
你可以简单地做plugins/*,然后!plugins/**/*.json!plugins/**/*.xml
Z. Khullah

我也看到过建议不要忽略包裹锁定
Z. Khullah

在提供的链接中@ z-khullah给出了“可选的忽略插件Git克隆”选项,因为有时我们会更改其中的代码,因此不能忽略所有文件。理想情况下,我们可以忽略,但由于插件存在问题,因此有在线建议,尤其是作为Cordova的新手会有所帮助。每次插件安装更改时,包锁都会更改10s或20s行,因此这也是我们不希望代码审查的内容,此外,通过锁定文件,直到现在我们还没有任何问题,它是从包中生成的。 json。希望能帮助我们提出看法。
Manohar Reddy Poreddy,

是的,但是该模式执行相同的操作,但行数较少。至于包锁定,它可以显示确切的node_modules结构,因此有助于调试,但是是的,我认为它是可选的
Z. Khullah


3

我遵循以下步骤:

  • 创建Cordova项目

  • 添加平台

  • 添加插件

在构建项目之前,我提交并推送生成的文件。在我构建项目并检查生成的新文件之后。我将这些添加到.gitignore中:

/platforms/android/gradlew.bat

/ platforms / android / build

/ platforms / android / gradle

/ platforms / android / libs

/platforms/android/gradlew.bat

/ platforms / android / CordovaLib / build

/platforms/android/.gradle


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.