我们如何在系统中维护Cordova的多个版本。我们开发了多个应用程序,我的系统目前运行 3.6.3-0.2.12 。但另一个正在开发的应用程序仅适用于Cordova v3.5。是否可以在一个系统中维护多个版本的cordova?
答案 0 :(得分:9)
你可以做到。通常,您将使用npm install -g cordova
在全球范围内安装cordova。此安装将可执行文件放在PATH中的全局npm目录中,并且该应用程序已准备好使用。您可以使用npm install --save cordova@3.5
在本地安装cordova cli,它将在./node_modules/cordova
的工作目录中安装CLI工具,并将依赖项添加到您的package.json
现在(至少在Windows机器上)node_modules文件夹中有一个隐藏的.bin
目录。您可以访问本地的cordova cli
node_modules/.bin/cordova.cmd create myproject com.site.myprojectMyProject
您可以在项目的根文件夹中创建一个脚本,以将命令转发到本地安装。
答案 1 :(得分:3)
更新:从npm@5.2.0开始,有npx
命令(请参阅here),可让您调用本地安装的CLI命令像cordova
直接没有创建npm传递脚本或要求--
传递args,如下所示:
> npx cordova <args>
PREVIOUS PRE-NPM@5.2.0答案:
幸运的是,您可以通过本地项目安装来管理多个cordova版本,而无需在全球范围内安装cordova。由于npm run
将node_modules/.bin
添加到提供给 package.json 中脚本的PATH,因此您只需在其中添加脚本以执行常见的cordova任务,并添加一个简单的{{1} catch-all脚本传递ad hoc命令:
scripts部分:
"cordova": "cordova"
要将参数传递给"scripts": {
...
"build:android": "cordova build android",
"cordova": "cordova",
...
}
(或任何npm)脚本,请使用cordova
作为分隔符,如下所示:
npm run cordova - platform add android
如果没有--
,则假定参数为--
本身而不传递给脚本。例如,
npm run cordova -v
显示了npm本身的版本,因为它从未传递给cordova!要查看本地cordova版本,请执行以下操作:
npm run cordova - -v
我发现这个 package.json 基于脚本的方法可以轻松地跨项目管理多个版本的CLI工具,如cordova,ionic等,我很少安装全局程序包,除了非项目特定的实用程序,方便随处可用(例如mkdirp,rimraf等)。
答案 2 :(得分:0)
在开发Cordova时,您必须清楚地区分Cordova CLI的版本以及您在开发过程中使用的每个平台的版本。从您的问题看来,你有运行3.6.3的Cordova CLI,并希望使用该CLI开发运行Cordova平台版本3.5的现有项目
对这个问题的回答是 - 是的,您可以开发,构建,添加插件并使用Cordova CLI 3.5创建的平台运行应用程序,但是您无法使用CLI 3.6.3添加平台版本3.5 。
只有当您运行命令cordova platform ios update
(例如iOS,其他平台也是如此)时,您的应用程序才会升级到3.6.3,所以如果您的VCS中有平台文件夹,那么是安全的。
警告:如果您未在VCS中提供平台代码,那么任何新的开发人员或来自源代码管理的任何新结帐都是干净的工作副本生成将使用Cordova平台版本3.6.3的应用程序,这可能不是您想要的。
答案 3 :(得分:0)
要捎带来自@codevision的答案,您可以使用较旧的cordova CLI版本并稍后安装平台。这将允许您为多个cordova项目保留全局CLI,但让它们在较旧或较晚的平台上运行。例如,要添加特定平台,您可以运行cordova platform add android@6.3.0
您可能无法安装比CLI版本更旧的平台,但您当然可以安装更新平台而不是CLI版本。