[email protected]
&[email protected]
を使用するプロジェクトでは、2つの可能性に直面します。
cordova create dummy-project && cd dummy-project
cordova platform add browser --save
cordova plugin add cordova-plugin-device --save
## If forgot to add `--save` option, manually update config.xml
#cordova platform save
#cordova plugin save
# reset platforms & plugins, like we just checked out the repository
rm -rf platforms plugins
# `cordova prepare` automatically setup platforms & plugins
# dependencies via config.xml
cordova prepare
長所
プラットフォームとプラグインのバージョンは、次のようにconfig.xml
に保存されます。
<plugin name="cordova-plugin-device" spec="~1.0.1" />
<engine name="browser" spec="~4.0.0" />
リポジトリをチェックアウトする複数の開発者は、同じ依存関係を取得します
短所
config.xml
plugins/fetch.json
とplatforms/platforms.json
の情報が重複していますか?--save
オプションを明示的に追加する必要がありますionic start dummy-project blank && cd dummy-project
ionic platform add browser
ionic plugin add cordova-plugin-device
# reset platforms & plugins, like we just checked out the repository
rm -rf platforms plugins
# fetch platforms & plugins dependencies via package.json
ionic state restore
package.json
に統合されました:cordovaPlugins
cordovaPlatforms
dependencies
に入れないのはなぜですか? ionic
はnode_modules
と{plugins,platforms}/
の間の依存関係をシンボリックリンクできますionic&cordova開発者は、この問題の統合/リファクタリングを検討していますか?
編集:2回目の更新! 2017.05。
再び変わります-今回はコルドバ側です。 Cordova 7はpackage.json
のサポートを追加します!
Cordovaブログをご覧ください: http://cordova.Apache.org/news/2017/05/04/cordova-7.html
編集:2016.05を更新
ionic
の機能がないために多くのcordova
コマンドが作成されたようですが、cordovaが多くの新しい機能をキャッチして実装したため、ionicメンテナーコルドバが提供するコマンドを支持して、ionic state
のようなコマンドをダンプすることを検討しています。
そのため、「cordova方式」を使用することは、より将来性があると思われます。
それらのチケットを見る:
元の回答(2016.03。):
それは私が言う人の好みの問題です。どのような解決策をとるにしても、一貫性を保ち、常にcordova plugin add ...
またはionic plugin add
を使用し、2つを混在させないことが最善です。
参考までに、ionのソリューションでバージョンを固定することはできますが、本当は手動で配置するか、インストール中に明示的にバージョンを指定する必要があります。 ionic plugin add [email protected]
。間違いなく、それに関してionic CLIに改善の余地があります。
たとえば、これはプラグインバージョンとプラットフォームバージョンも固定されたpackage.json
であり、github SHA1も固定されています:
"cordovaPlugins": [
"[email protected]",
"[email protected]",
"[email protected]",
{
"locator": "https://github.com/Initsogar/cordova-webintent.git#3d12378de9f38be900761a0ad06ab697cf6d9add",
"id": "com.borismus.webintent"
},
{
"variables": {
"APP_ID": "123456789987654321",
"APP_NAME": "TEST"
},
"locator": "[email protected]",
"id": "[email protected]"
}
],
"cordovaPlatforms": [
"[email protected]"
]
その後、ionic state restore
を実行すると、リストされているバージョンが尊重されます。
ionic state save
とionic state restore
を使用して、プラグインを含む構成を管理してみます。詳細については、ドキュメントを参照してください