プラグマンを使用したプラグインの管理

バージョン3.0以降、CordovaはすべてのデバイスAPIをプラグインとして実装し、デフォルトでは無効にしています。概要で説明されているワークフローの選択に応じて、プラグインの追加と削除に2つの異なる方法がサポートされています。

  • クロスプラットフォームワークフローを使用する場合は、コマンドラインインターフェースで説明されているように、cordova CLIユーティリティを使用してプラグインを追加します。CLIは、指定されたすべてのプラットフォームのプラグインを一度に変更します。

  • プラットフォーム中心のワークフローを使用する場合は、ターゲットとする各プラットフォームに対して個別に、より低レベルのPlugmanコマンドラインインターフェースを使用します。

このセクションでは、Plugmanユーティリティについて詳しく説明します。ノードモジュールとしてPlugmanを使用する方法やソースコードの変更については、そのリポジトリのREADMEファイルを参照してください。

Plugmanのインストール

plugmanをインストールするには、マシンにnodeをインストールする必要があります。その後、環境内の任意の場所から次のコマンドを実行してplugmanをグローバルにインストールし、任意のディレクトリから使用できるようにすることができます。

$ npm install -g plugman

リモートgit URLから直接プラグインをインストールするには、gitPATHにある必要があります。

ヒント: npmでplugmanをインストールした後でも、plugmanコマンドを実行できない場合は、/npm/ディレクトリをPATHに追加していることを確認してください。

注記: Plugmanをグローバルにインストールしてグローバルnpm名前空間を汚染したくない場合は、この手順をスキップできます。この場合、シェルツールでCordovaプロジェクトを作成すると、プロジェクト内にPlugmanを含むnode_modulesディレクトリが作成されます。グローバルにインストールしていないため、各Plugmanコマンドに対してnodeを呼び出す必要があります。たとえば、node ./node_modules/plugman/main.js -versionのようにします。このガイドの残りの部分では、Plugmanをグローバルにインストールしている(つまり、plugmanだけで呼び出せる)ことを前提としています。

Cordovaプロジェクトの作成

Plugmanを使用する前に、Cordovaプロジェクトを作成する必要があります。これは、コマンドラインインターフェースまたは低レベルのシェルスクリプトを使用して実行できます。シェルスクリプトを使用してプロジェクトを作成する手順は、プラットフォームガイドページにリストされているさまざまな「コマンドラインツール」ガイドにあります。

プラグインの追加

Plugmanをインストールし、Cordovaプロジェクトを作成したら、次のようにしてプラットフォームにプラグインを追加できます。

$ plugman install --platform <ios|android> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www <directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]

最小限のパラメータを使用すると、このコマンドはプラグインをCordovaプロジェクトにインストールします。プラットフォームと、そのプラットフォームのCordovaプロジェクトの場所を指定する必要があります。また、異なる--pluginパラメータ形式を使用してプラグインを指定する必要があります。

  • name: プラグインの内容が存在するディレクトリ名。これは、--plugins_dirパス(詳細については後述)の下にある既存のディレクトリ、またはCordovaレジストリにあるプラグインである必要があります。
  • url: https://またはgit://で始まるURLで、クローン可能でplugin.xmlファイルを含む有効なgitリポジトリを指します。このリポジトリの内容は--plugins_dirにコピーされます。
  • path: plugin.xmlファイルを含む有効なプラグインを含むディレクトリへのパス。このパスの内容は--plugins_dirにコピーされます。

その他のパラメータ

  • --plugins_dirはデフォルトで<project>/cordova/pluginsですが、フェッチされた各プラグインのサブディレクトリを含む任意のディレクトリにすることができます。
  • --wwwはデフォルトでプロジェクトのwwwフォルダの場所ですが、CordovaプロジェクトアプリケーションのWebアセットとして使用される任意のディレクトリにすることができます。
  • --variableを使用すると、インストール時に特定の変数を指定できます。これは、APIキーやその他のカスタムのユーザー定義パラメータを必要とする特定のプラグインに必要です。詳細については、プラグイン仕様を参照してください。

プラグインの削除

プラグインをアンインストールするには、uninstallコマンドを渡し、プラグインIDを指定するだけです。

$ plugman uninstall --platform <ios|android> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]

ヘルプコマンド

Plugmanには、行き詰まった場合や問題が発生した場合に役立つグローバルヘルプコマンドがあります。使用可能なすべてのPlugmanコマンドとその構文のリストが表示されます。

plugman -help
plugman  # same as above

注記: plugman -helpには、レジストリ関連コマンドが追加で表示される場合があります。これらのコマンドはプラグイン開発者向けであり、サードパーティのプラグインレジストリでは実装されていない可能性があります。

任意のPlugmanコマンドに--debug|-dフラグを追加して、詳細モードでコマンドを実行することもできます。これにより、発行された内部デバッグメッセージが表示され、ファイルの欠落などの問題の追跡に役立ちます。

# Adding Android battery-status plugin to "myProject":
plugman -d install --platform android --project myProject --plugin cordova-plugin-battery-status

最後に、--version|-vフラグを使用して、使用しているPlugmanのバージョンを確認できます。

plugman -v

レジストリアクション

プラグインレジストリとやり取りするために使用できる、多くのplugmanコマンドがあります。これらのレジストリコマンドは、plugins.cordova.ioプラグインレジストリに固有のものであり、サードパーティのプラグインレジストリでは実装されていない可能性があることに注意してください。

プラグインの検索

Plugmanを使用して、指定されたキーワードのスペース区切りリストと一致するプラグインIDをプラグインレジストリで検索できます。

plugman search <plugin keywords>

プラグインレジストリの変更

plugmanが使用している現在のプラグインレジストリのURLを取得または設定できます。サードパーティのプラグインレジストリを使用しない限り、通常はhttp://registry.cordova.ioに設定したままにしておく必要があります。

plugman config set registry <url-to-registry>
plugman config get registry

プラグイン情報の取得

次のようにして、プラグインリポジトリに保存されている特定のプラグインに関する情報を取得できます。

plugman info <id>

これにより、プラグインレジストリにアクセスして、プラグインのバージョン番号などの情報を取得します。

コアプラグインのインストール

以下の例は、バージョン3.0にアップグレードした後でもプロジェクトで使用しているCordova APIが引き続き機能するように、必要に応じてプラグインを追加する方法を示しています。各コマンドでは、ターゲットプラットフォームを選択し、プラットフォームのプロジェクトディレクトリを参照する必要があります。

  • cordova-plugin-battery-status

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-battery-status
    
  • cordova-plugin-camera

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-camera
    
  • cordova-plugin-console

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-console
    
  • cordova-plugin-contacts

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-contacts
    
  • cordova-plugin-device

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device
    
  • cordova-plugin-device-motion (加速度計)

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device-motion
    
  • cordova-plugin-device-orientation (コンパス)

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device-orientation
    
  • cordova-plugin-dialogs

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-dialogs
    
  • cordova-plugin-file

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-file
    
  • cordova-plugin-file-transfer

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-file-transfer
    
  • cordova-plugin-geolocation

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-geolocation
    
  • cordova-plugin-globalization

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-globalization
    
  • cordova-plugin-inappbrowser

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-inappbrowser
    
  • cordova-plugin-media

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-media
    
  • cordova-plugin-media-capture

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-media-capture
    
  • cordova-plugin-network-information

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-network-information
    
  • cordova-plugin-splashscreen

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-splashscreen
    
  • cordova-plugin-vibration

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-vibration