versiones run remove plugin instalar npm cordova-plugins

run - Administra los complementos de cordova con npm+package.json



instalar cordova npm (3)

Tenemos un proyecto Angular + Ionic + Cordova con múltiples desarrolladores para los que nos gustaría administrar las dependencias del complemento cordova. Estamos utilizando Cordova CLI 5+ , y cuando ejecutamos manualmente los comandos de instalación (por ejemplo, cordova plugin add cordova-plugin-camera ), se agrega una nueva línea a la sección cordovaPlugins del archivo package.json . Así es como se ve el producto terminado:

"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" ]

Eso es genial, excepto que no podemos encontrar ninguna manera para que dev # 2 instale esos complementos. En su lugar, tiene que ejecutar los comandos individualmente, que luego agrega una línea duplicada a package.json , ensuciando el repositorio. Estamos seguros de que debe haber un comando para instalarlos, pero no podemos encontrarlo. ¿Alguien puede arrojar algo de luz?


Puede agregar un comando postinstall. Mira abajo

{ "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" } }

Bonificación: use npm run clean seguido de npm install si desea comenzar clean, es decir, reinstalar todas las plataformas


puede que sea un poco tarde en el juego, pero este es mi script posterior a la instalación

"postinstall": "bower i && gulp && ionic state reset && ionic config build"

  • instala las dependencias de bower, por ejemplo, lib iónica
  • restaura los complementos de Cordova
  • reconstruye la configuración que hizo a través del comando de configuración iónica

¿Qué causó nuestro problema?

Originalmente habíamos utilizado este proyecto de semillas Ionic + Cordova + Grunt para generar nuestra aplicación inicial. El proyecto incluye varios ganchos de Cordova que, entre otras cosas, agregan y eliminan plataformas y complementos de las cordovaPlatforms correspondientes cordovaPlatforms y cordovaPlugins en package.json cuando ejecuta el comando correspondiente (es decir, cordova plugin add cordova-plugin-media agrega una línea a cordovaPlugins ).

Para admitir mejor las pruebas locales (por ejemplo, probar nuevas versiones de un complemento) y evitar problemas de dependencia entre desarrolladores, deshabilitamos el enlace del proyecto semilla y ahora creamos a mano el package.json según sea necesario.

Administrar adecuadamente los complementos de Cordova

Resulta que, la CLI de Ionic usa package.json para administrar el estado de la aplicación Cordova en términos de plataformas y complementos (a partir de la versión 1.3.19 , al parecer).

cordovaPlatforms package.json con dos secciones, cordovaPlatforms y cordovaPlugins nos ha permitido realizar una ionic state restore simple para obtener el entorno Cordova en forma para emulación, construcción, etc.

Especificar versiones

Para bloquear aún más el estado y el entorno de desarrollo de nuestra aplicación, también hemos especificado la versión de destino de las plataformas y complementos de Cordova que estamos utilizando agregando el número de versión. Esto es lo que usamos:

{ ... "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

Una vez que tenga lo anterior en su package.json , puede asegurarse de que su entorno local esté en el estado correcto a través de ionic state restore (v1.3.19 +) que examinará package.json e instalará plataformas y complementos según sea necesario.