版本管理

Cordova 提供了保存和恢复平台和插件的功能。

此功能允许开发人员将他们的应用程序保存到已知状态并恢复,而无需签入所有平台和插件源代码。

添加平台或插件时,有关应用程序平台和插件版本的详细信息会自动保存到 package.json 文件中。也可以通过直接编辑 package.json 文件来添加平台或插件,前提是您知道正确的标签和语法。无法通过这种方式删除插件或平台。建议使用 Cordova CLI 命令 cordova plugin add|remove ...cordova platform add|remove ... 来添加和删除插件和平台,以避免出现任何不同步问题。

恢复步骤在发出cordova prepare时自动发生,利用之前保存在 package.jsonconfig.xml 文件中的信息。

保存/恢复功能在大型团队协作开发应用程序时非常有用,每个团队成员专注于一个平台或插件。此功能使共享项目和减少签入存储库中的冗余代码量变得更加容易。

平台版本控制

保存平台

要保存平台,请执行以下命令

cordova platform add <platform[@<version>] | directory | git_url>

运行上述命令后,package.json 应更新为包含平台依赖项和 Cordova 相关信息。

示例

"cordova": {
  "platforms": [
    "android"
  ]
},
"dependencies": {
  "cordova-android": "^8.0.0",
}

--nosave 标志可防止将指定的平台添加到 package.json 文件或从中删除。

示例

cordova platform add <platform[@<version>] | directory | git_url> --nosave

以下示例获取包,将其解压缩到 node_modules 并相应地更新 package.json 文件。在幕后,此过程由 npm CLI 控制。以下是一些添加平台的不同方法。

使用 Cordova 解析名称添加

示例

cordova platform add android

可用的 Cordova 解析名称为

Cordova 解析名称 NPM 包名称
android cordova-android
electron cordova-electron
ios cordova-ios
browser cordova-browser

使用 Cordova 解析名称和锁定版本添加

示例

cordova platform add [email protected]

此命令将显式获取版本 7.1.4

使用 npm 包名称添加

示例

cordova platform add cordova-android

使用 Git URL 添加

示例

cordova platform add https://github.com/apache/cordova-android.git

cordova platform add https://github.com/apache/cordova-android

cordova platform add github:apache/cordova-android
  • cordova platform add C:/path/to/android/platform

    从指定的目录中检索 Android 平台,将其添加到项目中,并更新 package.json 文件。

  • cordova platform add android --nosave

    从 npm 中检索 cordova-android 平台的锁定版本,将其添加到项目中,但不将其添加到 package.json 文件中。

更新或删除平台

可以从 config.xmlpackage.json 中更新和删除平台。

要更新平台,请执行以下命令

cordova platform update <platform[@<version>] | directory | git_url>

要删除平台,请执行以下命令之一

cordova platform remove <platform>
cordova platform rm <platform>

一些示例

  • cordova platform update android

    除了将 cordova-android 平台更新为锁定版本外,它还会更新 package.json 文件。

  • cordova platform update [email protected]

    除了将 cordova-android 平台更新为版本 3.8.0 外,它还会更新 package.json 文件。

  • cordova platform update /path/to/android/platform

    除了将 cordova-android 平台更新为提供的文件夹中找到的版本外,它还会更新 package.json 文件。

  • cordova platform remove android

    从项目中删除 cordova-android 平台,并将其从 package.json 文件中删除。

    注意:如果平台定义存在于 config.xml 中(来自 Cordova CLI 的先前版本),它也将从 config.xml 中删除。

  • cordova platform remove android --nosave

    从项目中删除 cordova-android 平台,但不将其从 package.json 文件中删除。

恢复平台

在执行cordova prepare命令时,平台会自动从 package.json(和 config.xml)中恢复。

如果两个文件中都定义了平台,则 package.json 中定义的信息将用作真实来源。

prepare 之后,从 config.xml 恢复的任何平台都将更新 package.json 文件以反映从 config.xml 获取的值。

如果您添加平台时未指定 <version | folder | git_url>,则将从 package.jsonconfig.xml 中获取要安装的版本。

如果在两个文件中都发现package.json 的优先级高于 config.xml

示例

假设您的 config.xml 文件包含以下条目

<?xml version='1.0' encoding='utf-8'?>
    ...
    <engine name="android" spec="7.1.4" />
    ...
</xml>

如果您运行命令 cordova platform add android 且未指定 <version | folder | git_url>,则将检索并安装平台 [email protected]

恢复平台的优先级顺序示例

假设您在 config.xmlpackage.json 中定义了平台和版本,如下所示

config.xml:

<engine name="android" spec=“7.4.1” />

package.json:

"cordova": {
  "platforms": [
    "android"
  ]
},
"dependencies": {
  "cordova-android": "^8.0.0"
}

执行 prepare 时,package.json 中的版本优先于 config.xml,并将安装版本 ^8.0.0


插件版本控制

插件命令是平台命令的镜像

保存插件

要保存插件,请执行以下命令

cordova plugin add <plugin[@<version>] | directory | git_url>

运行上述命令后,package.json 应包含如下所示的内容

"cordova": {
  "plugins": {
    "cordova-plugin-device": {}
  }
},
"devDependencies": {
  "cordova-plugin-device": "^1.0.0"
}

--nosave 标志可防止将指定的插件添加到 package.json 文件或从中删除。要防止保存插件,请执行以下命令

cordova plugin add <plugin[@<version>] | directory | git_url> --nosave

一些示例

  • cordova plugin add cordova-plugin-device

    从 npm 中检索 cordova-plugin-device 插件的锁定版本,将其添加到项目中并更新 package.json 文件。

  • cordova plugin add [email protected]

    从 npm 中检索版本为 2.0.1cordova-plugin-device 插件,将其添加到项目中并更新 package.json 文件。

  • cordova plugin add https://github.com/apache/cordova-plugin-device.git

    cordova plugin add https://github.com/apache/cordova-plugin-device

    cordova plugin add github:apache/cordova-plugin-device

    npm 从 git 存储库中检索 cordova-plugin-device 插件,将其添加到项目中并更新 package.json

  • cordova plugin add C:/path/to/console/plugin

    从指定的目录中检索 cordova-plugin-device 插件,将其添加到项目中,并更新 package.json 文件。

对现有项目进行插件的大规模保存

如果您有一个预先存在的项目,并且想要保存项目中当前添加的所有插件,可以使用

cordova plugin save

删除插件

可以使用以下命令之一从 config.xmlpackage.json 中删除插件

cordova plugin remove <plugin>
cordova plugin rm <plugin>

例如

  • cordova plugin remove cordova-plugin-device

    从项目中删除 cordova-plugin-device 插件,并将其条目从 package.json 中删除。

    注意:如果插件定义存在于 config.xml 中(来自 Cordova CLI 的先前版本),它也将从 config.xml 中删除。

恢复插件

在执行cordova prepare命令时,插件会自动从 package.jsonconfig.xml 中恢复。

如果两个文件中都定义了插件,则 package.json 中定义的信息将用作真实来源。

prepare 之后,从 config.xml 恢复的任何插件都将更新 package.json 文件以反映从 config.xml 获取的值。

如果您添加插件时未指定 <version | folder | git_url>,则将从 package.jsonconfig.xml 中获取要安装的版本。

如果在两个文件中都发现package.json 的优先级高于 config.xml

示例

假设您的 config.xml 文件包含以下条目

<?xml version='1.0' encoding='utf-8'?>
    ...
    <plugin name="cordova-plugin-device" spec="2.0.1" />
    ...
</ xml>

如果您运行命令 cordova plugin add cordova-plugin-device 且未指定 <version | folder | git_url>,则将检索并安装平台 [email protected]

恢复插件的优先级顺序示例

假设您在 config.xmlpackage.json 中定义了插件和版本,如下所示

config.xml:

<plugin name="cordova-plugin-splashscreen"/>

package.json:

"cordova": {
  "plugins": {
    "cordova-plugin-splashscreen": {}
  }
},
"devDependencies": {
  "cordova-plugin-splashscreen": "1.0.0"
}

执行 prepare 时,package.json 中的版本优先于 config.xml,并将安装版本 1.0.0