Sur un projet utilisant [email protected]
[email protected]
, Je fais face à 2 possibilités:
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
Avantages
Les versions des plateformes et plugins sont enregistrées dans config.xml
comme ci-dessous:
<plugin name="cordova-plugin-device" spec="~1.0.1" />
<engine name="browser" spec="~4.0.0" />
Plusieurs développeurs qui récupèrent le référentiel obtiendront les mêmes dépendances
Contre
config.xml
qui encombre le répertoire racine du projetplugins/fetch.json
et platforms/platforms.json
?--save
option 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
avec les touches personnalisées suivantes: cordovaPlugins
cordovaPlatforms
dependencies
car ce sont des packages NPM de toute façon? ionic
pourrait créer un lien symbolique entre les dépendances entre node_modules
{plugins,platforms}/
Les développeurs ionic cordova envisagent-ils une unification/refactorisation de cette matière?)
Edit: deuxième mise à jour! 2017.05.
Cela change encore - cette fois du côté de Cordoue. Cordova 7 ajoute la prise en charge de package.json
!
Voir sur le blog Cordova: http://cordova.Apache.org/news/2017/05/04/cordova-7.html
Edit: mise à jour 2016.05.
Il semble que de nombreuses commandes ionic
ont été créées en raison du manque de fonctionnalités dans cordova
, mais depuis que cordova a rattrapé et implémenté de nombreuses nouvelles fonctionnalités, les responsables ionic envisagent de vider leur commande comme ionic state
en faveur de celles fournies par cordova.
Il semble donc que suivre la "voie cordova" pourrait être plus pérenne.
Voir ces billets:
Réponse originale (2016.03.):
C'est une question de goût, je dirais. Quelle que soit la solution que vous utilisez, il est préférable d'être cohérent et d'utiliser toujours cordova plugin add ...
ou ionic plugin add
et ne pas mélanger les deux.
Pour info, vous pouvez avoir la version épinglée avec la solution d'ionic, mais c'est vrai, vous devez la mettre manuellement, ou vous devez spécifier la version explicitement lors de l'installation, par ex. ionic plugin add [email protected]
. Il y a certainement de la place pour des améliorations dans ionic CLI à ce sujet.
Par exemple, c'est notre package.json
avec les versions des plugins et des plates-formes épinglées, ainsi que le github SHA1 épinglé:
"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]"
]
Ensuite, lorsque vous faites ionic state restore
il honorera les versions listées.
j'essaierais d'utiliser ionic state save
et ionic state restore
pour gérer la configuration y compris les plugins ... Voir la documentation pour plus d'informations