Управление плагинами 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, загрязняя хранилище. Мы уверены, что должна быть команда для их установки, но не можем ее найти. Может кто-нибудь пролить свет?

640   3  

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

    Ничего не найдено.