Управление плагинами cordova с помощью пакета npm+.формат JSON
у нас есть проект Angular + Ionic + Cordova с несколькими разработчиками, для которых мы хотели бы управлять зависимостями плагинов cordova. Мы используем Cordova CLI 5+, и при ручном запуске команды установить (например,cordova plugin add cordova-plugin-camera), новая строка добавляется к на . Вот как выглядит готовый продукт:
"cordovaPlugins": [
"cordova-plugin-camera",
"cordova-plugin-console",
"cordova-plugin-contacts",
"cordova-plugin-device",
"cordova-plugin-dialogs",
"cordova-plugin-file",
"cordova-plugin-geolocation",
"cordova-plugin-media",
"cordova-plugin-media-capture",
"cordova-plugin-network-information",
"cordova-plugin-splashscreen",
"cordova-plugin-statusbar",
"cordova-plugin-vibration",
"com.ionic.keyboard"
]
Это все здорово, за исключением того, что мы не можем найти способ для dev #2 для npm установить эти плагины-вместо этого он должен запустить команды по отдельности, которые затем добавляют дублирующую строку в package.json, загрязняя хранилище. Мы уверены, что должна быть команда для их установки, но не можем ее найти. Может кто-нибудь пролить свет?
3 ответов:
Что Вызвало Наш Вопрос
мы изначально использовали этот Ionic + Cordova + Grunt seed project чтобы породить наше первоначальное приложение. Элемент включает в себя ряд Кордова крючки что, помимо прочего, добавляет и удаляет платформы и плагины из соответствующих
cordovaPlatformsиcordovaPluginsразделыpackage.jsonпри выполнении соответствующей команды (т. е.cordova plugin add cordova-plugin-mediaдобавляет строку сcordovaPlugins).лучше поддержка локального тестирования (например, попытка новых версий плагина) и предотвращение проблем с зависимостями между разработчиками, мы отключили крючок проекта seed и теперь вручную создаем
package.jsonпо мере необходимости.Правильное Управление Плагинами Cordova
получается, что ионный CLI использует
package.jsonдля управления состоянием приложения Cordova с точки зрения платформ и плагинов (начиная с версия 1.3.19, кажется).наполнение
package.jsonс двумя секциями,cordovaPlatformsиcordovaPluginsпозволил нам сделать простойionic state restoreполучить окружающую среду Кордовы в форме для эмуляции, здания, ЕТК.С Указанием Версии
для дальнейшей блокировки состояния и среды разработки нашего приложения мы также указали целевую версию платформ и плагинов Cordova, которые мы используем, добавив номер версии. Вот что мы использование:
{ ... "cordovaPlatforms": [ "[email protected]", "[email protected]" ], "cordovaPlugins": [ "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]" ] }tl; dr
как только вы имеете вышеуказанное в вашем
package.json, затем вы можете убедиться, что ваша локальная среда находится в правильном состоянии черезionic state restore(v1.3. 19+) который будет жевать черезpackage.jsonи установить платформы и плагины по мере необходимости.
вы можете добавить команду postinstall. Смотрите ниже
{ "cordovaPlugins": [ "[email protected]", ], "cordovaPlatforms": [ "[email protected]", ], "scripts": { "postinstall": "ionic state restore", "clean": "ionic platform remove android; ionic platform remove ios; ionic platform remove browser; git checkout package.json" } }бонус : используйте
npm run cleanзатемnpm installЕсли вы хотите начать чистить т. е. переустановить все платформы
может быть, это немного поздно в игру, но это мой скрипт postinstall
"postinstall": "bower i && gulp && ionic state reset && ionic config build"
- Он устанавливает зависимости bower, например ionic lib
- Он восстанавливает Плагины Cordova
- он перестраивает конфигурацию, которую вы сделали с помощью команды Ionic config
Comments