Я заметил, что сборки нашего CI начали давать сбой из-за следующей ошибки:
Discovered plugin "cordova-plugin-app-version" in config.xml. Adding it to the project
Installing "cordova-plugin-app-version" for android
Adding cordova-plugin-app-version to package.json
Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
[ERROR] Exception:
The command '/bin/sh -c ionic cordova platforms add android' returned a non-zero code: 1
Та же проблема возникает как на iOS, так и на Android.
После некоторого копания я обнаружилчто cordova 9.0.0 был недавно выпущен.
Есть несколько изменений, связанных с этой проблемой.
- GH-710 Отбрасывание Q Зависимость и использование NativeОбещания
- GH-707 Устаревать requireCordovaModule для не-Cordova модулей
Сначала я подумал, что почему-то у нас не была заблокирована наша версия Cordova, но мы заблокировали ее на cordova@8.1.2
в нашем докер-файле.Я также проверил это на своей локальной машине, и у меня есть кордова версия 8.1.2
.Так что это не может быть проблемой.
После просмотра журналов я заметил несколько таких журналов:
cordova-android version check failed ("/app/platforms/android/cordova/version"), continuing anyways.
Было несколькотакие, как 3 или 4, но сборка не остановилась, когда это произошло.
Затем я снова запустил сборку старого коммита, и он работал нормально, возможно, потому, что некоторые слои были кэшированы.Но если я изменил только один пакет (я обновил более симпатичный, чтобы попробовать его), это привело к перестроению большинства слоев, и сборка завершилась с указанной выше ошибкой.
Кажется, что некоторые зависимости оказываются глубжеобновлен, что вызывает проблему.
Спасибо за вашу помощь.