Подтвердить что ты не робот

Управление плагинами cordova с npm + package.json

У нас есть проект Angular + Ionic + Cordova с несколькими разработчиками, которым мы хотели бы управлять зависимостями плагинов cordova. Мы используем Cordova CLI 5+, и при ручном запуске команд установки (например, cordova plugin add cordova-plugin-camera) новая строка добавляется в раздел cordovaPlugins в package.json файл. Вот как выглядит готовый продукт:

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

4b9b3361

Ответ 1

Что вызвало наш выпуск

Мы первоначально использовали этот проект Ionic + Cordova + Grunt seed, чтобы запустить наше первоначальное приложение. Проект включает в себя ряд крючков Cordova, которые, среди прочего, добавляют и удаляют платформы и плагины из соответствующие разделы cordovaPlatforms и cordovaPlugins в package.json при запуске соответствующей команды (т.е. cordova plugin add cordova-plugin-media добавляет строку в cordovaPlugins).

Чтобы лучше поддерживать локальное тестирование (например, пытаться использовать новые версии плагина), а также для предотвращения проблем с зависимостями между разными пользователями, мы отключили крюк проекта проекта и теперь при необходимости package.json вручную.

Правильное управление плагинами Кордовы

В свою очередь, Ionic 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 и устанавливать платформы и плагины как необходимо.

Ответ 2

Вы можете добавить команду 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, если вы хотите начать чистить. Переустановите все платформы.

Ответ 3

может быть, это немного поздно в игре, но это моя postinstall script

    "postinstall": "bower i && gulp && ionic state reset && ionic config build"
  • он устанавливает зависимости бауэр, например. ионный lib
  • он восстанавливает плагины Кордовы
  • он восстанавливает конфигурацию, выполненную с помощью команды ionic config