Cordova CLI,使用Git和保存插件/平台

我想弄清楚如何协调一些cordova+ git“最佳实践”与我认为是现实的问题,我希望有人能够为我阐明这一点。

如果我理解正确,目前的“最佳做法”是将这些目录添加到我的.gitignore(从“用Cordova CLI开发”,当前版本):

platforms/ plugins/ node_modules/ 

这从版本控制中删除了易于下载的插件,主要是样板平台代码,因为它可以通过简单的Cordova CLI命令轻松生成。

但是,这似乎是反直觉的,因为 – 我正在思考像NPM或Bower – 与Cordova CLI我不能保存我在configuration文件中使用哪些平台和插件。 使用NPM,我可以添加一个--save开关来将包保存在package.json文件中。 这使我不能版本控制我的node_modules文件夹,而是使用'npm install'。 有了Cordova CLI,我似乎无法使用--save开关(是否有一个等价物)来“记住”我打算使用的插件或平台。

似乎www/目录中的config.xml文件并不保存已添加哪些平台或插件。

项目中是否还有一些其他文件保留了我想要使用的平台和插件的内存? 它是如何工作的?

cordova4.3.0 +允许您保存和恢复平台和插件。 保存的信息存储在config.xml文件中。 请参阅v5.0.0发行说明和官方的Cordova文档 。

添加它们时,可以使用--save选项保存平台和插件:

 cordova platforms add PLATFORM --save cordova plugins add PLUGIN --save 

或者您可以保存当前添加的平台和插件:

 cordova platforms save cordova plugins save 

通过这样做,不需要检查平台或插件到您的代码库。 当cordova prepare命令运行时,它们将根据您的config.xml文件自动恢复。

我通常编写一个钩子来捕获我想在我的项目中使用的插件。 你可以在我写的文章中看到这个: http : //devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/

采用Cordova 3.x的新模块化架构,每个应用程序都需要插件,甚至可以使用日志或地理定位等基本function。 而不是logging您的项目需要哪些插件/function,并要求每个新开发人员安装它们,请在after_platform_add步骤中使用钩子自动下载并安装它们。 使用这个插件,开发人员每次检出项目并添加一个平台时,都会自动获得所需的插件。

您也可能有兴趣跟随这个错误,这表明npm样式 – 保存function: https ://issues.apache.org/jira/browse/CB-5775

平台有点难度,因为它们不适合钩子体系结构,但是你可以写一个shell脚本,你可以执行它来添加你的平台。

 #!/bin/sh for plat in ios android; do cordova platform add $plat done 

你可以做一些类似于你在node_modules中安装的cordova的版本(至less这是我认为你在node_modules中安装的) – 使用shell脚本来获得正确的cordova版本:

 #!/bin/sh VERSION=3.3.1-0.4.2 npm install cordova@$VERSION 

PS很高兴你喜欢这本书!