版本管理
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>
執行上述命令後,應使用平台相依性和 Cordova 相關資訊更新 package.json
。
範例
"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 android@7.1.4
此命令將明確擷取版本 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 android@3.8.0
除了將
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>
,則會擷取並安裝平台 android@7.1.4
。
還原平台的優先順序範例
假設您在 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 cordova-plugin-device@2.0.1
從 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>
,則會擷取並安裝平台 cordova-plugin-device@2.0.1
。
還原外掛程式的優先順序範例
假設您在 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
。