版本管理
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
文件中删除。注意:如果平台定义存在于先前版本的 Cordova CLI 的
config.xml
中,也会将其从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
中删除其条目。注意:如果插件定义存在于先前版本的 Cordova CLI 的
config.xml
中,也会将其从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
版本。