dpogue opened a new issue, #940:
URL: https://github.com/apache/cordova-lib/issues/940

   # Bug Report
   
   ## Problem
   Include `cordova-plugin-androidx-adapter` in package.json, along with 
`cordova-ios` and `cordova-android`.
   
   With no platforms or plugins directories, run `cordova prepare`.
   
   ### What is expected to happen?
   The `after_prepare` hook of `cordova-plugin-androidx-adapter` should be 
invoked at the end of the prepare, because the Android platform and the plugin 
have just been restored.
   
   
   ### What does actually happen?
   The `after_prepare` hook never fires, cordova-lib verbose output indicates 
that no hook scripts were found.
   
   
   ## Information
   <!-- Include all relevant information that might help understand and 
reproduce the problem -->
   What happens is that the ScriptsFinder tries to look up scripts in plugins 
for the provided list of platforms:
   
https://github.com/apache/cordova-lib/blob/db5c8c014e917004108a440563b1aad7fc6b3140/src/hooks/scriptsFinder.js#L87
   
   That list of platforms comes from the options of the HooksRunner:
   
https://github.com/apache/cordova-lib/blob/db5c8c014e917004108a440563b1aad7fc6b3140/src/hooks/scriptsFinder.js#L114
   
   The HooksRunner sets its list of platforms to a provided option, or falls 
back to querying for the installed platforms:
   
https://github.com/apache/cordova-lib/blob/db5c8c014e917004108a440563b1aad7fc6b3140/src/hooks/HooksRunner.js#L68-L69
   
   In the case of `prepare`, if a platform is not manually specified, we set 
that list of platforms to an empty array:
   
https://github.com/apache/cordova-lib/blob/db5c8c014e917004108a440563b1aad7fc6b3140/src/cordova/prepare.js#L32
   
   The end result is that after restoring all the platforms and plugins, the 
HooksRunner still tries to find hook scripts with an empty platforms list, and 
the Android-specific hook never runs.
   
   ### Suggested fix
   
   HooksRunner should maybe check if the platforms array is empty and then 
still fallback to querying the installed platforms, rather than taking the 
empty input and running with it.
   
   ### Version information
   Was seeing this in an older project using Cordova CLI 10, but having looked 
at the code it seems like it's probably still an issue today.
   
   
   
   ## Checklist
   <!-- Please check the boxes by putting an x in the [ ] like so: [x] -->
   
   - [x] I searched for existing GitHub issues
   - [x] I updated all Cordova tooling to most recent version
   - [x] I included all the necessary information above
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to