版本管理
Cordova 提供了保存和恢复平台和插件的功能。
此功能允许开发人员将他们的应用程序保存到已知状态并恢复,而无需签入所有平台和插件源代码。
添加平台或插件时,有关应用程序平台和插件版本的详细信息会自动保存到 package.json
文件中。也可以通过直接编辑 package.json
文件来添加平台或插件,前提是您知道正确的标签和语法。无法通过这种方式删除插件或平台。建议使用 Cordova CLI 命令 cordova plugin add|remove ...
和 cordova platform add|remove ...
来添加和删除插件和平台,以避免出现任何不同步问题。
恢复步骤在发出cordova prepare
时自动发生,利用之前保存在 package.json
和 config.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.xml
和 package.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.json
或 config.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.xml
和 package.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.1
的cordova-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.xml
和 package.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.json
和 config.xml
中恢复。
如果两个文件中都定义了插件,则 package.json
中定义的信息将用作真实来源。
在 prepare
之后,从 config.xml
恢复的任何插件都将更新 package.json
文件以反映从 config.xml
获取的值。
如果您添加插件时未指定 <version | folder | git_url>
,则将从 package.json
或 config.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.xml
和 package.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
。