如何在开发系统中维护多个cordova版本?

use*_*479 10 cordova cordova-plugins

我们如何在系统中维护Cordova的多个版本.我们开发了多个应用程序,我的系统目前运行3.6.3-0.2.12.但另一个正在开发的应用程序仅适用于Cordova v3.5.是否可以在一个系统中维护多个版本的cordova?

kin*_*ple 10

你能行的.通常,您可以在全球范围内安装cordova npm install -g cordova.此安装将可执行文件放在PATH中的全局npm目录中,并且该应用程序已准备好使用.您可以在本地安装cordova cli npm install --save cordova@3.5,它将在工作目录中安装CLI工具./node_modules/cordova,并将依赖项添加到您的package.json

现在(至少在Windows机器上).binnode_modules文件夹中有一个隐藏目录.您可以在这里访问当地的cordova cli

node_modules/.bin/cordova.cmd create myproject com.site.myprojectMyProject
Run Code Online (Sandbox Code Playgroud)

您可以在项目的根文件夹中创建一个脚本,以将命令中继到本地安装.


rob*_*b3c 5

更新:从npm@5.2.0开始,有一个npx命令(请参阅此处),可让您cordova直接调用本地安装的CLI命令,而无需创建npm传递脚本或要求--传递args,例如:

> npx cordova <args>

之前的PRE-NPM@5.2.0解答:

幸运的是,您可以通过本地项目安装来管理多个cordova版本,而不必全局安装cordova。由于已将package.json中的脚本npm run添加node_modules/.bin到提供给脚本的PATH中,因此您可以仅在其中添加用于常见cordova任务的脚本,以及添加一个简单的包罗万象的脚本以通过临时命令传递:"cordova": "cordova"

package.json中的脚本部分:

"scripts": {
  ...
  "build:android": "cordova build android",
  "cordova": "cordova",
  ...
}
Run Code Online (Sandbox Code Playgroud)

要将参数传递给cordova(或任何npm)脚本,请--用作分隔符,如下所示:

npm run cordova-平台添加android

如果不使用--,则该参数假定为npm自身使用,而不传递给脚本。例如,

npm运行cordova -v

显示npm本身的版本,因为它从未传递给cordova!要查看本地cordova版本,请执行以下操作:

npm run cordova--v

我发现,这种基于package.json脚本的方法使跨项目管理多个版本的CLI工具(例如cordova,ionic等)变得容易,并且除了很少的非项目特定实用程序外,我几乎不再安装全局软件包。随处可用(例如mkdirp,rimraf等)很方便。


cod*_*ion 0

开发 Cordova 时,您必须清楚地区分 Cordova CLI 的版本以及您在开发过程中使用的每个平台的版本。从您的问题来看,您似乎有运行 3.6.3 的 Cordova CLI,并且希望使用该 CLI 为运行 Cordova 平台版本 3.5 的现有项目进行开发

这个问题的答案是 - 是的,您可以使用 Cordova CLI 3.5 创建的平台开发、构建、添加插件并运行应用程序,但无法使用 CLI 3.6.3 添加平台版本 3.5。仅当您运行命令时,您的应用程序才会升级到 3.6.3 cordova platform ios update(以 iOS 为例,其他平台也是如此),因此,如果您的 VCS 中有平台文件夹,则可以安全升级。

警告:如果您不将平台代码放入 VCS 中,则任何新开发人员或干净工作副本中源代码控制的任何新签出都会生成将使用 Cordova 平台版本 3.6.3 的应用程序,这可能不是您想要的。