web-dev-qa-db-ja.com

cordovaプラグインフォルダー内のfetch.jsonファイルの目的は何ですか?

ファイルfetch.jsoncordova plugin add最初に実行された後にpluginsフォルダー内に作成されます。このファイルも、プラグインを追加/削除するたびに変更されます。

  • このファイルの正確な目的は何ですか?
  • このファイルを使用するツールは、いつ、なぜですか?
  • Fetch.jsonを使用してプラグインを復元する方法はありますか(プラグインをリポジトリに配置しないようにしてください)?
  • このファイルの内容に関するドキュメントはどこにありますか?

Fetch.jsonの内容:

{
    "com.phonegap.plugins.PushPlugin": {
        "source": {
            "type": "git",
            "url": "https://github.com/phonegap-build/PushPlugin.git",
            "subdir": "."
        },
        "is_top_level": true,
        "variables": {}
    },
    "cordova-plugin-file": {
        "source": {
            "type": "registry",
            "id": "cordova-plugin-file"
        },
        "is_top_level": true,
        "variables": {}
    }
}
20
rtf_leg

このファイルは、npm package.jsonの依存関係と同様に、インストールされたプラグイン、そのオリジンとリビジョンを追跡しているように見えますが、plugman用です。私はこれがすぐにnpm標準に移行することを願っています。

このファイルは、cordova add/removeプラグインで更新されます( https://github.com/Apache/cordova-lib/blob/e4e5904619bab05705d62bce92a4c4cd0d45bb82/cordova-lib/src/cordova/plugin.js#L272

cordova prepareの場合、cordovaはplugins/ios.json(iosの場合)からプラグインリストを読み取り、それぞれについて:

  • plugins/fetch.jsonからプラグイン情報を取得します
  • プラグインをローカルで見つけてみてください

このファイルでプラグインを復元することは不可能のようです。私のワークフローは:

  • config.xmlでプラグインの依存関係を定義する
  • リモートプラットフォームと空のプラグインフォルダ
  • cordova platform add xxxを実行します

これにより、config.xmlで定義されているプラ​​グインが再フェッチされます

唯一のドキュメントはソースコードのようです: https://github.com/Apache/cordova-lib/search?utf8=%E2%9C%93&q=fetch

7
jujule