Каков правильный способ управления плагинами и платформами Кордовы?
В проекте, использующем [email protected]
и [email protected]
, я сталкиваюсь с двумя возможностями:
с Cordova (config.xml)
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
Pros
- Платформы и плагины принадлежат к области Кордовы, поэтому кажется интуитивно понятным использование cordova
-
Платформы и версии плагинов сохраняются в
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 (package.json)
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
Pros
- Зависимости проектов, объединенные в
package.json
со следующими настраиваемыми ключами:-
cordovaPlugins
-
cordovaPlatforms
-
- Автосохранение при добавлении платформы или плагина
Против
- Отсутствие версии для плагинов и платформ в package.json(это огромный блокиратор для меня)
- Почему бы не поместить плагины и платформы cordova в
dependencies
, так как они являются пакетами NPM?ionic
может символизировать зависимости междуnode_modules
и{plugins,platforms}/
Являются ли разработчики ионной и кордовой об объединении/рефакторизации этого вопроса?