版本管理

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>

執行上述命令後,應使用平台相依性和 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.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 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.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>,則會擷取並安裝平台 android@7.1.4

還原平台的優先順序範例

假設您在 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 cordova-plugin-device@2.0.1

    從 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 中刪除其條目。

    注意:如果外掛程式定義存在於先前版本的 Cordova CLI 的 config.xml 中,也會從 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>,則會擷取並安裝平台 cordova-plugin-device@2.0.1

還原外掛程式的優先順序範例

假設您在 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