Cordovaコマンドラインインターフェース(CLI)コマンド

CLI構文

cordova <command> [options] -- [platformOpts]

グローバルコマンド一覧

これらのコマンドは常に使用できます。

コマンド 説明
create プロジェクトの作成
help <command> コマンドのヘルプを取得
telemetry テレメトリ収集のオン/オフを切り替え
config グローバルなCordovaオプションの設定、取得、削除、編集、一覧表示

プロジェクトコマンド一覧

これらのコマンドは、現在の作業ディレクトリが有効なCordovaプロジェクトの場合にサポートされます。

コマンド 説明
info プロジェクト情報の生成
requirements 指定されたプラットフォームのすべてのインストール要件を確認して出力します。
platform プロジェクトプラットフォームの管理
plugin プロジェクトプラグインの管理
prepare ビルドのためにファイルを実行プラットフォームにコピーします。
compile プラットフォームのプロジェクトをコンパイルします。
build プラットフォームのプロジェクトをビルドします(`prepare` + `compile`)
clean ビルドアーティファクトからプロジェクトをクリーンアップします。
run プロジェクトを実行します(prepare && compileを含む)
serve ローカルWebサーバーでプロジェクトを実行します(prepareを含む)

共通オプション

これらのオプションは、すべてのcordova-cliコマンドに適用されます。

オプション 説明
-d または --verbose より詳細な出力をシェルに出力します。`cordova-cli`をノードモジュールとして使用している場合は、`cordova.on('log', function() {})`または`cordova.on('warn', function() {})`を呼び出すことで、`log`イベントと`warn`イベントを購読することもできます。
-v または --version `cordova-cli`インストールのバージョンを出力します。
--nohooks フックの実行を抑制します(RegExpフックパターンをパラメーターとして受け入れます)
--no-telemetry 現在のコマンドのテレメトリ収集を無効にします。

プラットフォーム固有のオプション

特定のコマンドには、特定のプラットフォームに固有のオプション(`platformOpts`)があります。これらは、`--`セパレーターを使用してcordova-libモジュール内のコマンド解析を停止し、プラットフォームが解析する残りのオプションを渡すことで、cordova-cliに提供できます。

CLI使用例

次の例は、Cordova CLIを使用して、プロジェクトの作成、カメラプラグインの追加、Androidプラットフォームへのプロジェクトの追加、ビルド、実行などのさまざまなタスクを実行する方法を示しています。

  • プロジェクトの作成
  • `camera`プラグインの追加
  • Androidプラットフォームへのプロジェクトの追加、ビルド、実行

さらに、リリース署名に使用される`--keystore`など、Cordova-Androidプラットフォームによって提供される特定のオプションの使用例を示しています。

  1. Cordovaプロジェクトの作成

     cordova create myApp com.myCompany.myApp myApp
     cd myApp
    
  2. プロジェクトへのカメラプラグインの追加

     cordova plugin add cordova-plugin-camera
    
  3. プロジェクトへのAndroidプラットフォームの追加

     cordova platform add android
    
  4. Androidプラットフォームの要件でシステムが構成されていることを確認

     cordova requirements android
    
  5. 詳細ログを有効にしてAndroidプロジェクトをビルド

     cordova build android --verbose
    
  6. Androidプラットフォームでプロジェクトを実行

     cordova run android
    
  7. 署名パラメーターを使用してAndroidプロジェクトをリリースモードでビルド

     cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey
    

`cordova create`コマンド

指定されたパスにCordovaプロジェクトのディレクトリ構造を作成します。

コマンド構文

cordova create path [id [name]] [options]

引数

説明
path 既に存在しないディレクトリ。Cordovaはこのディレクトリを作成します。ディレクトリ構造の詳細については、以下を参照してください。
id デフォルト: `io.cordova.hellocordova`
`config.xml`ファイルの`widget`要素の`id`属性にマップする、リバースドメインスタイルの識別子。これは変更できますが、Javaパッケージ名など、この値を使用して生成されたコードがある場合があります。適切な値を選択することをお勧めします。
name デフォルト: `HelloCordova`
`config.xml`ファイルの`name`要素にマップするアプリケーションの表示タイトル。これは変更できますが、Javaクラス名など、この値を使用して生成されたコードがある場合があります。デフォルト値は`HelloCordova`ですが、適切な値を選択することをお勧めします。

オプション

オプション 説明
--template ローカル、NPM、またはGitHubにあるカスタムテンプレートを使用します。

ディレクトリ構造

Cordova CLIは次のディレクトリ構造で動作します。

myapp/
|-- config.xml
|-- merges/
| | |-- android/
| | |-- ios/
|-- www/
|-- platforms/
| |-- android/
| |-- ios/
|-- plugins/
  |-- cordova-plugin-camera/

config.xml

アプリケーションを構成し、プロジェクトの動作をカスタマイズできます。 config.xmlリファレンスドキュメントも参照してください。

www/

"www"ディレクトリにはプロジェクトのWebアーティファクトが含まれており、`.html`、`.css`、`.js`など、さまざまなファイルタイプが含まれています。

Cordovaアプリケーション開発者として、コードとアセットの大部分は、このディレクトリに配置されます。`cordova prepare`コマンドの実行中、"www"ディレクトリの内容は、各プラットフォームのサブディレクトリ内の対応するwwwディレクトリにコピーされます。たとえば、`platforms/ios/www`または`platforms/android/assets/www`にあります。

CLIはソース"www"フォルダからファイルを定期的にコピーするため、このディレクトリのファイルのみを編集し、プラットフォームサブディレクトリにあるファイルを修正しないでください。

バージョン管理ソフトウェアを使用している場合は、ソース"www"フォルダと"merges"フォルダの両方をバージョン管理システムに含めることをお勧めします。

トランスパイルプロセスを必要とするフレームワークを使用している場合、配布を目的とした最終出力は"www"ディレクトリに配置する必要があることに注意することが重要です。"www"ディレクトリの目的は、トランスパイルされていないソースコードを格納することではありません。代わりに、トランスパイルされていないソースコードは、その目的に特化した別のディレクトリに保管することをお勧めします。

platforms/

プロジェクトに追加したプラットフォームのソースコードをすべて含んでいます。

**警告:** CLIを使用してアプリケーションをビルドする場合、何をしているかを知っている場合、またはドキュメントで特に指定されている場合を除き、/platforms/ディレクトリのファイルを編集しないでください。このディレクトリ内のファイルは、アプリケーションの準備、ビルド、またはプラグインの再インストール時に定期的に上書きされます。

plugins/

追加されたプラグインはすべて、このディレクトリに抽出またはコピーされます。

merges/

プラットフォーム固有のWebアセット(HTML、CSS、JavaScriptファイル)は、このディレクトリの適切なサブフォルダに含まれています。これらは、`prepare`中に適切なネイティブディレクトリに配置されます。`merges/`の下に配置されたファイルは、関連するプラットフォームの`www/`フォルダ内の対応するファイルを上書きします。プロジェクト構造が次の場合の簡単な例を次に示します。

merges/
|-- ios/
| -- app.js
|-- android/
| -- android.js
www/
-- app.js

AndroidとiOSプロジェクトをビルドした後、Androidアプリケーションには`app.js`と`android.js`の両方が含まれます。ただし、iOSアプリケーションには`app.js`のみが含まれ、`merges/ios/app.js`にあるものになり、`www/`内にある"common" `app.js`を上書きします。

バージョン管理

よりクリーンなバージョン管理設定を確保するために、`platforms/`および`plugins/`ディレクトリをバージョン管理システムに含めないことをお勧めします。これらのディレクトリはビルドアーティファクトと見なされます。代わりに、プロジェクトで使用されるプラットフォームとプラグインは、`config.xml`と`package.json`ファイルに自動的に記録されます。`cordova prepare`コマンドを呼び出すと、これらの構成ファイルに指定されている情報に基づいて、必要なプラットフォームとプラグインがダウンロードされ、設定されます。

`platforms/`および`plugins/`ディレクトリをバージョン管理から除外して`config.xml`と`package.json`ファイルを使用することにより、より効率的な開発と継続的インテグレーションワークフローを維持できます。

  • 指定されたIDと表示名を使用して`myapp`ディレクトリにCordovaプロジェクトを作成します。
cordova create myapp com.mycompany.myteam.myapp MyApp

`cordova platform`コマンド

Cordovaプラットフォームを管理します。プラットフォームの追加、削除、更新、一覧表示が可能です。プラットフォームを追加または削除するコマンドを実行すると、プロジェクトのplatformsディレクトリの内容に影響します。

コマンド構文

cordova {platform | platforms} [
    add <platform-spec> [...] {--save | link=<path> } |
    {remove | rm}  platform [...] {--save}|
    {list | ls}  |
    update ]
サブコマンド オプション 説明
add <platform-spec> […]   指定されたプラットフォームを追加します。
  --nosave <engine>タグを使用してインストールした後、<platform-spec>を`config.xml`と`package.json`に保存しません。
  --link=<path> <platform-spec>がローカルパスである場合、プラットフォームライブラリの複製を作成する代わりに、直接リンクします(プラットフォームによってサポートが異なります。プラットフォーム開発に役立ちます)。
remove <platform> […]   指定されたプラットフォームを削除します。
  --nosave 削除後、指定されたプラットフォームを`config.xml`と`package.json`から削除しません。
update <platform> […]   指定されたプラットフォームを更新します。
  --save `config.xml`に指定されたバージョンを更新します。
list   インストール済みおよび使用可能なすべてのプラットフォームを一覧表示します。

Platform-spec

プラットフォームを指定するには、いくつかの方法があります。

<platform-spec> : platform[@version] | path | url[#commit-ish]
説明
platform プロジェクトに追加するプラットフォーム名(例:android、ios、electronなど)。Cordova CLIの各リリースは、各プラットフォームのバージョンを固定します。バージョンが指定されていない場合、このバージョンを使用してプラットフォームが追加されます。
version semverを使用したメジャー.マイナー.パッチバージョン指定子
path プラットフォームを含むディレクトリまたはtarballへのパス
url プラットフォームを含むGitリポジトリまたはtarballのURL
commit-ish コミット/タグ/ブランチ参照。指定されていない場合は、'master'が使用されます。

サポートされているプラットフォーム

  • android
  • browser
  • electron
  • ios

  • `android`と`ios`プラットフォームの固定バージョンを追加し、ダウンロードされたバージョンを`config.xml`と`package.json`に保存します。
cordova platform add android ios
  • semverバージョン^5.0.0で`android`プラットフォームを追加し、`config.xml`と`package.json`に保存します。
cordova platform add android@^5.0.0
  • 指定されたGitリポジトリをクローンして`4.0.0`タグをチェックアウトすることでプラットフォームを追加します。
cordova platform add https://github.com/myfork/cordova-android.git#4.0.0
  • `android`という名前のローカルディレクトリを使用してプラットフォームを追加します。
cordova platform add ../android
  • 指定されたtarballを使用してプラットフォームを追加します。
cordova platform add ../cordova-android.tgz
  • `android`プラットフォームをプロジェクトから削除し、`config.xml`と`package.json`からも削除します。
cordova platform rm android
  • `android`プラットフォームをプロジェクトから削除しますが、`config.xml`と`package.json`からは削除しません。
cordova platform rm android --nosave
  • バージョン番号付きで使用可能なプラットフォームとインストール済みのプラットフォームを一覧表示します。これは、問題を報告する場合にバージョン番号を見つけるのに役立ちます。
cordova platform ls

`cordova plugin`コマンド

プロジェクトプラグインの管理

コマンド構文

cordova {plugin | plugins} [
    add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --force} |
    {remove | rm} {<pluginid> | <name>} --save |
    {list | ls}
]
サブコマンド オプション 説明
add <plugin-spec> […]   指定されたプラグインを追加します。
  --searchpath <directory> IDでプラグインを検索する際、レジストリにアクセスする前に、このディレクトリとそのすべてのサブディレクトリを検索します。複数の検索パスを指定できます。*nix系システムでは「:」、Windowsでは「;」をセパレータとして使用します。
  --noregistry レジストリでプラグインを検索しません。
  --link ローカルパスからインストールする場合、ファイルをコピーする代わりにシンボリックリンクを作成します。リンクされるファイルの範囲はプラットフォームによって異なります。プラグイン開発に役立ちます。
  --nosave <plugin-spec>plugin要素の一部としてconfig.xmlまたはpackage.jsonに保存しないでください。
  --force バージョン6.1で導入されました。 同じファイルが既にターゲットディレクトリに存在する場合でも、プラグインからソースファイルを強制的にコピーします。
<pluginid>\|<name> […] を削除します   指定されたID/名前のプラグインを削除します。
  --nosave config.xmlまたはpackage.jsonから指定されたプラグインを削除しないでください。
list   現在インストールされているプラグインを一覧表示します。

Plugin-spec

プラグインを指定するにはいくつかの方法があります。

<plugin-spec> : [@scope/]pluginID[@version]|directory|url[#commit-ish][:subdir]
説明
scope スコープ付きnpmパッケージとして公開されたプラグインのスコープ
plugin プラグインID(npmレジストリまたは--searchPath内のプラグインのID)
version semverを使用したメジャー.マイナー.パッチバージョン指定子
directory plugin.xmlを含むディレクトリ
url plugin.xmlを含むGitリポジトリのURL
commit-ish コミット/タグ/ブランチ参照。指定されていない場合は、'master'が使用されます。

プラグイン解決アルゴリズム

プロジェクトにプラグインを追加する場合、CLIは次の基準に基づいてプラグインを解決します(優先順位順に記載)。

  1. コマンドで指定されたplugin-spec(例:cordova plugin add pluginID@version
  2. config.xmlおよびpackage.jsonに保存されたplugin-spec(つまり、プラグインが以前に--nosaveなしで追加された場合)
  3. Cordovaバージョン6.1以降、現在のプロジェクトがサポートできるnpmに公開されている最新のプラグインバージョン(package.jsonCordova依存関係をリストしているプラグインにのみ適用されます)
  4. npmに公開されている最新のプラグインバージョン

  • cordova-plugin-cameracordova-plugin-fileをプロジェクトに追加し、config.xmlpackage.jsonに保存します。プラグインを検索するには../pluginsディレクトリを使用します。

      cordova plugin add cordova-plugin-camera cordova-plugin-file --searchpath ../plugins
    
  • semverバージョン^2.0.0でcordova-plugin-cameraを追加し、config.xmlpackage.jsonに保存します。

      cordova plugin add cordova-plugin-camera@^2.0.0
    
  • 指定されたローカルディレクトリからプラグインを追加します。

      cordova plugin add ../cordova-plugin-camera
    
  • 指定されたtarballファイルからプラグインを追加します。

      cordova plugin add ../cordova-plugin-camera.tgz
    
  • プロジェクトとconfig.xmlおよびpackage.jsonからプラグインを削除します。

      cordova plugin rm camera
    
  • プロジェクトからプラグインを削除しますが、config.xmlまたはpackage.jsonからは削除しません。

      cordova plugin rm camera --nosave
    
  • プロジェクトにインストールされているすべてのプラグインを一覧表示します。

      cordova plugin ls
    

競合するプラグイン

edit-configタグをplugin.xmlファイルで使用しているプラグインを追加すると、プラグインの競合が発生することがあります。edit-configを使用すると、プラグインはXML要素の属性を追加または置き換えることができます。

この機能は、複数のプラグインが同じXML要素を変更しようとした場合、アプリケーションに問題を引き起こす可能性があります。プラグインの追加を防ぎ、あるプラグインが別のプラグインのedit-config変更を上書きしようとしないように、競合検出が実装されています。edit-configの競合が見つかった場合、エラーが発生し、プラグインは追加されません。エラーメッセージには、プラグインを追加する前にすべての競合を解決する必要があることが記載されています。edit-configの競合を解決する1つの方法は、影響を受けるプラグインのplugin.xmlを変更して、同じXML要素を変更しないようにすることです。もう1つの方法は、--forceフラグを使用してプラグインを強制的に追加することです。このオプションは、競合検出を無視してすべての競合を上書きするため、他のプラグインの状態が悪くなる可能性があるため、注意して使用する必要があります。

edit-configの管理、競合の解決、および例については、plugin.xmlガイドを参照してください。

cordova prepareコマンド

config.xmlのメタデータをプラットフォーム固有のマニフェストファイルに変換し、アイコンとスプラッシュスクリーンをコピーし、指定されたプラットフォームのプラグインファイルをコピーして、各ネイティブSDKでプロジェクトをビルドできるようにします。

コマンド構文

cordova prepare [<platform> [..]]

オプション

オプション 説明
<platform> […] 準備するプラットフォーム名。指定しない場合、すべてのプラットフォームが準備されます。

cordova compileコマンド

cordova compilecordova buildコマンドのサブセットです。prepareを実行せずにコンパイルステップのみを実行します。代わりにcordova buildを呼び出すのが一般的ですが、このステップはフックを使用して拡張することを可能にするために役立ちます。

コマンド構文

cordova compile [<platform> [...]]
    [--debug | --release]
    [--device | --emulator | --target=<targetName>]
    [--buildConfig=<configfile>]
    [-- <platformOpts>]

詳細については、以下のcordova buildコマンドのドキュメントを参照してください。

cordova buildコマンド

すべてのプラットフォーム、または指定されたプラットフォームに対してcordova preparecordova compileのショートカットです。指定されたプラットフォーム向けにアプリをビルドできます。

コマンド構文

cordova build [<platform> [...]]
    [--debug | --release]
    [--device | --emulator]
    [--buildConfig=<configfile>]
    [-- <platformOpts>]
オプション 説明
<platform> […] ビルドするプラットフォーム名。指定しない場合、すべてのプラットフォームがビルドされます。
--debug デバッグビルドを実行します。これは通常、ビルド対象の基盤となるプラットフォームのデバッグモードに変換されます。
--release リリースビルドを実行します。これは通常、ビルド対象の基盤となるプラットフォームのリリースモードに変換されます。
--device デバイス向けにビルドします。
--emulator エミュレータ向けにビルドします。特に、デバイスとエミュレータではプラットフォームアーキテクチャが異なる場合があります。
--buildConfig=<configFile> デフォルト:cordovaルートディレクトリのbuild.json。
指定されたビルド設定ファイルを使用します。build.jsonファイルは、特にパッケージの署名に関連するアプリのビルドプロセスをカスタマイズするためのパラメータを指定するために使用されます。
<platformOpts> プラットフォーム固有のオプションを提供するには、--セパレータの後に含める必要があります。詳細については、プラットフォームガイドのドキュメントを確認してください。

  • デバイスへのデプロイのために、androidiosプラットフォームをdebugモードでビルドします。
cordova build android ios --debug --device
  • 指定されたビルド設定を使用して、androidプラットフォームをreleaseモードでビルドします。
cordova build android --release --buildConfig=..\myBuildConfig.json
  • androidプラットフォームをリリースモードでビルドし、Androidビルドプロセスにカスタムプラットフォームオプションを渡します。
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey

cordova runコマンド

指定されたプラットフォームのデバイス/エミュレータでアプリを準備、ビルド、およびデプロイします。デバイスが接続されている場合、適格なエミュレータが既に実行されていない限り、そのデバイスが使用されます。

コマンド構文

cordova run [<platform> [...]]
    [--list | --debug | --release]
    [--noprepare]
    [--nobuild]
    [--device | --emulator | --target=<targetName>]
    [--buildConfig=<configfile>]
    [-- <platformOpts>]
オプション 説明
<platform> […] 実行するプラットフォーム名。指定しない場合、すべてのプラットフォームが実行されます。
--list 使用可能なターゲットを一覧表示します。指定しない限り、デバイスとエミュレータの両方のデプロイターゲットが表示されます。
--debug デバッグビルドをデプロイします。これは、--releaseが指定されていない場合のデフォルトの動作です。
--release リリースビルドをデプロイします。
--noprepare 準備をスキップします(Cordova v6.2以降で使用可能)
--nobuild ビルドをスキップします。
--device デバイスにデプロイします。
--emulator エミュレータにデプロイします。
--target 特定のターゲットエミュレータ/デバイスにデプロイします。ターゲットオプションを表示するには--listを使用します。
--buildConfig=<configFile> デフォルト:cordovaルートディレクトリのbuild.json。
指定されたビルド設定ファイルを使用します。build.jsonファイルは、特にパッケージの署名に関連するアプリのビルドプロセスをカスタマイズするためのパラメータを指定するために使用されます。
<platformOpts> プラットフォーム固有のオプションを提供するには、--セパレータの後に含める必要があります。詳細については、プラットフォームガイドのドキュメントを確認してください。

  • Nexus_5_API_23_x86という名前のandroidプラットフォームエミュレータで、現在のcordovaプロジェクトのリリースビルドを実行します。実行時に指定されたビルド構成を使用します。
cordova run android --release --buildConfig=..\myBuildConfig.json --target=Nexus_5_API_23_x86
  • デバイスまたはエミュレータ(デバイスが接続されていない場合)を使用して、現在のcordovaプロジェクトのandroidプラットフォームのデバッグビルドを実行します。ビルドの実行をスキップします。
cordova run android --nobuild
  • iosデバイスで現在のcordovaプロジェクトのデバッグビルドを実行します。
cordova run ios --device
  • このアプリの実行に使用できる接続されているすべてのデバイスと使用可能なエミュレータの名前を列挙します。
cordova run ios --list

cordova emulateコマンド

cordova run --emulatorのエイリアスです。デバイスの代わりにエミュレータを起動します。cordova runコマンドのドキュメントの詳細を参照してください。

cordova cleanコマンド

プラットフォーム固有のビルドクリーンアップを実行することにより、すべてのプラットフォーム、または指定されたプラットフォームのビルド成果物をクリーンアップします。

コマンド構文

cordova clean [<platform> [...]]

使用例

  • androidプラットフォームのビルド成果物をクリーンアップします。
cordova clean android

cordova requirementsコマンド

指定されたプラットフォーム(または指定がない場合はプロジェクトに追加されたすべてのプラットフォーム)のすべての要件をチェックして出力します。各プラットフォームのすべての要件が満たされている場合、コード0で終了します。そうでない場合は、ゼロ以外のコードで終了します。

これは、特定のプラットフォームをビルドするためのマシンの設定に役立ちます。

コマンド構文

cordova requirements [platform?]

cordova infoコマンド

バグレポートの提出とヘルプの取得に役立つ情報を表示します。

コマンド構文

cordova info

cordova serveコマンド

指定されたポート(またはデフォルトの8000)を使用して、www/アセットのローカルWebサーバーを実行します。プロジェクトにはhttp://HOST_IP:PORT/PLATFORM/wwwでアクセスできます。

コマンド構文

cordova serve [port]

cordova telemetryコマンド

テレメトリの収集をオンまたはオフにします。

コマンド構文

cordova telemetry [State]
状態 説明
on テレメトリの収集をオンにします。
off テレメトリの収集をオフにします。

詳細

初めてcordovaを実行すると、ユーザーにオプトインまたはオプトアウトを促すタイムドプロンプトが表示されます。これは30秒間表示され、その後に回答がない場合は自動的にオプトアウトされます。CI環境では、CI環境変数を設定できます。これにより、プロンプトが表示されなくなります。--no-telemetryフラグを使用することで、単一のコマンドでテレメトリの収集をオフにすることもできます。

使用例

cordova telemetry on
cordova telemetry off
cordova build --no-telemetry

詳細については、プライバシーポリシーをご覧ください:https://cordova.dokyumento.jp/privacy

cordova helpコマンド

構文の概要、または特定のコマンドのヘルプを表示します。

コマンド構文

cordova help [command]
cordova [command] -h
cordova -h [command]

cordova configコマンド

グローバルなcordovaオプションの設定、取得、削除、編集、および一覧表示を行います。

コマンド構文

cordova config [ls|edit|set|get|delete] <key?> <value?>

使用例

cordova config ls
cordova config edit
cordova config set save-exact true
cordova config get save-exact
cordova config delete save-exact