バージョン管理
Cordovaは、プラットフォームとプラグインを保存および復元する機能を提供します。
この機能により、開発者は、すべてのプラットフォームとプラグインのソースコードをチェックインすることなく、アプリを既知の状態に保存および復元できます。
プラットフォームまたはプラグインを追加すると、アプリのプラットフォームとプラグインのバージョンの詳細が自動的に`package.json`ファイルに保存されます。正しいタグと構文を知っていれば、`package.json`ファイルを直接編集してプラットフォームまたはプラグインを追加することもできます。ただし、この方法でプラグインやプラットフォームを削除することはできません。プラグインとプラットフォームの追加と削除には、同期の問題を避けるために、Cordova CLIコマンド`cordova plugin add|remove ...`と`cordova platform add|remove ...`を使用することをお勧めします。
`cordova prepare`コマンドが実行されると、`package.json`ファイルと`config.xml`ファイルに保存されている情報を使用して、**復元**ステップが自動的に実行されます。
保存/復元機能が役立つシナリオの1つは、アプリに取り組む大規模なチームで、各チームメンバーがプラットフォームまたはプラグインに焦点を当てている場合です。この機能により、プロジェクトの共有が容易になり、リポジトリにチェックインされる冗長なコードの量を削減できます。
プラットフォームのバージョン管理
プラットフォームの保存
プラットフォームを保存するには、次のコマンドを実行します。
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 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`から復元されたプラットフォームは、`config.xml`から取得した値を反映するように`package.json`ファイルを更新します。
`
**両方のファイルで検出された場合**、`package.json`は`config.xml`よりも優先されます。
例
`config.xml`ファイルに次のエントリが含まれているとします。
<?xml version='1.0' encoding='utf-8'?>
...
<engine name="android" spec="7.1.4" />
...
</xml>
`
プラットフォーム復元の優先順位の例
`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`から復元されたプラグインは、`config.xml`から取得した値を反映するように`package.json`ファイルを更新します。
`
**両方のファイルで検出された場合**、`package.json`は`config.xml`よりも優先されます。
例
`config.xml`ファイルに次のエントリが含まれているとします。
<?xml version='1.0' encoding='utf-8'?>
...
<plugin name="cordova-plugin-device" spec="2.0.1" />
...
</ xml>
`
プラグイン復元の優先順位の例
`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`がインストールされます。