[jira] [Updated] (CB-13853) cordova prepare fails to install plugins
[ https://issues.apache.org/jira/browse/CB-13853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Echo Fan updated CB-13853: -- Attachment: (was: image-2020-10-17-01-57-26-154.png) > cordova prepare fails to install plugins > > > Key: CB-13853 > URL: https://issues.apache.org/jira/browse/CB-13853 > Project: Apache Cordova > Issue Type: Bug > Components: cordova-lib >Affects Versions: cordova@8.0.0 > Environment: * Node {{9.5.0}} > * NPM {{5.6.0}} > * Cordova {{8.0.0}} >Reporter: Valentin Haloiu >Assignee: Raphael von der Grün >Priority: Major > Attachments: image-2020-10-17-01-57-40-394.png > > > h2. Demo cordova project > [cordova-plugin-install-bug-demo|https://github.com/vially/cordova-plugin-install-bug-demo] > h2. Steps to reproduce > After cloning the repo {{cd}} into the root directory of the project and run: > * {{npm install}} > * {{cordova prepare ios --verbose}} > The plugins will fail to install correctly and the contents of the generated > {{plugins/fetch.json}} file is messed up: > {noformat} > { > "cordova-plugin-whitelist": { > "source": { > "type": "registry", > "id": "cordova-plugin-whitelist@1.3.1" > }, > "is_top_level": true, > "variables": {} > }, > "cordova-plugin-splashscreen": { > "source": { > "type": "registry", > "id": "cordova-plugin-customurlscheme@^4.3.0" > }, > "is_top_level": true, > "variables": { > "URL_SCHEME": "io.cordova.hellocordova" > } > } > } > {noformat} > Also, the output of the {{cordova prepare ios --verbose}} makes it quite > clear that something went wrong during the installation: > {noformat} > ... > Discovered plugin "cordova-plugin-customurlscheme" in config.xml. Adding it > to the project > No scripts found for hook "before_plugin_add". > Calling plugman.fetch on plugin "cordova-plugin-customurlscheme@^4.3.0" > Running command: npm install cordova-plugin-customurlscheme@^4.3.0 > --production --no-save > Command finished with error code 0: npm > install,cordova-plugin-customurlscheme@^4.3.0,-production,-no-save > Copying plugin > "/path-to-project/cordova-install-plugin-bug/node_modules/cordova-plugin-splashscreen" > => > "/path-to-project/cordova-install-plugin-bug/plugins/cordova-plugin-splashscreen" > Calling plugman.install on plugin > "/path-to-project/cordova-install-plugin-bug/plugins/cordova-plugin-splashscreen" > for platform "ios > Plugin "cordova-plugin-splashscreen" already installed on ios. > ... > {noformat} > The installation process seems to mess up the installation of the > {{customurlscheme}} plugin with that of the {{splashscreen}} plugin. > h2. Underlying code issue > The root of the problem seems to be in the > [add.js|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js] > {{cordova-lib}} file. > [Line > 97|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L97] > prints the {{Calling plugman.fetch on plugin "customurlscheme"}} line, while > [line > 131|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L131] > prints {{Calling plugman.install on plugin "splashscreen"}}. > This seems to suggest that somewhere between these two lines cordova messes > up the plugins somehow. > The code is somewhat difficult to understand but the root cause seems to be > this > [pluginInfo|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L52] > global variable. Its value is [assigned in the callback of a > promise|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L103], > read from [another callback of a > promise|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L131], > while [a whole chain of > promises|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L74] > is set using a {{reduce}} function. > h2. Further information > Replacing {{"cordova-plugin-splashscreen": "^5.0.1"}} with > {{"cordova-plugin-splashscreen": "5.0.1"}} in {{package.json}} makes the > {{prepare}} command complete succesfully ([demo > branch|https://github.com/vially/cordova-plugin-install-bug-demo/tree/no-fail]). > This is a small example of the volatility of the bug. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org
[jira] [Updated] (CB-13853) cordova prepare fails to install plugins
[ https://issues.apache.org/jira/browse/CB-13853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Valentin Haloiu updated CB-13853: - Summary: cordova prepare fails to install plugins (was: Plugin installation is not deterministic) > cordova prepare fails to install plugins > > > Key: CB-13853 > URL: https://issues.apache.org/jira/browse/CB-13853 > Project: Apache Cordova > Issue Type: Bug > Components: cordova-lib >Affects Versions: cordova@8.0.0 > Environment: * Node {{9.5.0}} > * NPM {{5.6.0}} > * Cordova {{8.0.0}} >Reporter: Valentin Haloiu >Priority: Major > > h2. Demo cordova project > [cordova-plugin-install-bug-demo|https://github.com/vially/cordova-plugin-install-bug-demo] > h2. Steps to reproduce > After cloning the repo {{cd}} into the root directory of the project and run: > * {{npm install}} > * {{cordova prepare ios --verbose}} > The plugins will fail to install correctly and the contents of the generated > {{plugins/fetch.json}} file is messed up: > {noformat} > { > "cordova-plugin-whitelist": { > "source": { > "type": "registry", > "id": "cordova-plugin-whitelist@1.3.1" > }, > "is_top_level": true, > "variables": {} > }, > "cordova-plugin-splashscreen": { > "source": { > "type": "registry", > "id": "cordova-plugin-customurlscheme@^4.3.0" > }, > "is_top_level": true, > "variables": { > "URL_SCHEME": "io.cordova.hellocordova" > } > } > } > {noformat} > Also, the output of the {{cordova prepare ios --verbose}} makes it quite > clear that something went wrong during the installation: > {noformat} > ... > Discovered plugin "cordova-plugin-customurlscheme" in config.xml. Adding it > to the project > No scripts found for hook "before_plugin_add". > Calling plugman.fetch on plugin "cordova-plugin-customurlscheme@^4.3.0" > Running command: npm install cordova-plugin-customurlscheme@^4.3.0 > --production --no-save > Command finished with error code 0: npm > install,cordova-plugin-customurlscheme@^4.3.0,-production,-no-save > Copying plugin > "/path-to-project/cordova-install-plugin-bug/node_modules/cordova-plugin-splashscreen" > => > "/path-to-project/cordova-install-plugin-bug/plugins/cordova-plugin-splashscreen" > Calling plugman.install on plugin > "/path-to-project/cordova-install-plugin-bug/plugins/cordova-plugin-splashscreen" > for platform "ios > Plugin "cordova-plugin-splashscreen" already installed on ios. > ... > {noformat} > The installation process seems to mess up the installation of the > {{customurlscheme}} plugin with that of the {{splashscreen}} plugin. > h2. Underlying code issue > The root of the problem seems to be in the > [add.js|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js] > {{cordova-lib}} file. > [Line > 97|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L97] > prints the {{Calling plugman.fetch on plugin "customurlscheme"}} line, while > [line > 131|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L131] > prints {{Calling plugman.install on plugin "splashscreen"}}. > This seems to suggest that somewhere between these two lines cordova messes > up the plugins somehow. > The code is somewhat difficult to understand but the root cause seems to be > this > [pluginInfo|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L52] > global variable. Its value is [assigned in the callback of a > promise|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L103], > read from [another callback of a > promise|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L131], > while [a whole chain of > promises|https://github.com/apache/cordova-lib/blob/81f0a8214aa6dc2811bcb6472f4ce62cb8719024/src/cordova/plugin/add.js#L74] > is set using a {{reduce}} function. > h2. Further information > Replacing {{"cordova-plugin-splashscreen": "^5.0.1"}} with > {{"cordova-plugin-splashscreen": "5.0.1"}} in {{package.json}} makes the > {{prepare}} command complete succesfully ([demo > branch|https://github.com/vially/cordova-plugin-install-bug-demo/tree/no-fail]). > This is a small example of the volatility of the bug. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org