Как заставить кордову перекомпилировать добавленные плагины?

Кажется, что cordova кэширует скомпилированные плагины, когда я изменяю исходный код плагинов (.java файлы в Windows), единственный способ заставить Cordova перекомпилировать плагин - это удалить, а затем снова добавить этот плагин, что является проблемой. Есть ли способ очистить кеш кордовы или заставить его перекомпилировать добавленные плагины?


person amin    schedule 21.10.2014    source источник
comment
Я час пытался понять, почему java не перекомпилируется. Я предполагаю, что Кордова решила, что перекомпилировать исходные файлы не важно. Жаль, что им не хватает таких элементарных функций.   -  person Brain2000    schedule 21.02.2017
comment
Из любопытства, не могли бы вы сказать мне, где вы нашли, что cordova кэширует скомпилированные плагины? Я искал перекомпиляцию плагина в течение нескольких дней, но не мог найти ответа, есть очень плохая (нет) документация о том, как работает процесс компиляции Cordova? Это такая боль!!   -  person ANewGuyInTown    schedule 07.04.2017


Ответы (3)


Не факт, единственный обходной путь, который я нашел, — это использовать скрипт before_prepare для удаления и добавления плагина каждый раз, когда вы готовите приложение:

/
|--hooks/
   |--before_prepare/
      |--000_RefreshPluginXXX.sh

000_RefreshPluginXXX.sh:

!#/user/bin/env bash
cordova plugin rm yourPlugin
cordova plugin add yourPlugin

Подробности см. здесь. Надеюсь, что файл sh работает в среде Windows, иначе вы можете сделать это с файлом .bat.

Помните, что это приведет к удалению, загрузке и переустановке указанных плагинов для каждой платформы каждый раз, когда вы готовите свое приложение (подготовка происходит при сборке/эмуляции/компиляции)

person Miquel    schedule 22.10.2014
comment
он перезагрузит плагин, что означает, что все мои изменения будут потеряны :| - person amin; 24.10.2014
comment
На самом деле, вы можете делать с такими скриптами все, что захотите, например, идея состоит в том, чтобы сохранить ваш плагин локально в другой папке, отредактировать и внести изменения оттуда и заменить последний порядок скрипта на cordova plugin add path/to/your/local/folder. - person Miquel; 24.10.2014

Afaik нет возможности перекомпилировать исходные файлы.

Самый быстрый и самый грязный способ (по-прежнему лучший для быстрой проверки) — изменить файлы под

например (Андроид)

платформы/android/src/YOUR_PACKAGE/FILE_TO_CHANGE

таким образом он автоматически перекомпилируется.

Очевидно, что этот файл можно легко удалить или перезаписать, так что это просто способ быстро протестировать НЕБОЛЬШИЕ изменения.

person Harald    schedule 19.02.2015
comment
Я вношу (небольшие) изменения в плагины в platforms/android/src/path/to/package/path/to/file, но cordova build android на самом деле не выводит новый APK. Есть идеи, почему? - person Luke; 07.05.2018

Из Cordova>=6.0 вы можете установить и связать свой локальный путь плагина с проектом вместо того, чтобы копировать его, чтобы он перекомпилировался при каждой сборке.

cordova plugin add /local/path/to-plugin/ --link    

https://cordova.apache.org/docs/en/6.x/reference/cordova-cli/index.html#cordova-plugin-command

person David Gallardo    schedule 08.02.2018
comment
Жаль, что я не нашел этот комментарий 5 часов назад! - person distante; 26.09.2019
comment
Кроме того, в Windows вам может потребоваться запустить эту команду от имени администратора, иначе вы можете получить EPERM: операция не разрешена, символическая ссылка.. ошибка - person Orhan; 22.05.2020
comment
Это работает для меня в Linux. * Сначала я сделал резервную копию папки с плагинами * Cordova plugin rm my-plugin * Cordova plugin add /some/path/outside/plgin/folder --link * и сохранил ее вне папки с плагинами, что избавило меня от некоторых проблем.. - person Johan Hoeksma; 13.10.2020