[
https://issues.apache.org/jira/browse/CB-11687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15421154#comment-15421154
]
Sergey Shakhnazarov commented on CB-11687:
------------------------------------------
When {{prepare()}} is called without options we [initialize
{{options.platforms}} with
{{\[\]}}|https://github.com/apache/cordova-lib/blob/2a178662acfad9c779114fddd815e484fc1b6f1d/cordova-lib/src/cordova/prepare.js#L40]
so that {{hooksRunner.fire('before_prepare'}} -> [{{scriptsFinder}} platform
filter|https://github.com/apache/cordova-lib/blob/2a178662acfad9c779114fddd815e484fc1b6f1d/cordova-lib/src/hooks/scriptsFinder.js#L73]
returns no platform-specific hooks.
After restoring platforms in
[restore.installPlatformsFromConfigXML|https://github.com/apache/cordova-lib/blob/2a178662acfad9c779114fddd815e484fc1b6f1d/cordova-lib/src/cordova/prepare.js#L46]
we call
[cordova_util.preProcessOptions|https://github.com/apache/cordova-lib/blob/2a178662acfad9c779114fddd815e484fc1b6f1d/cordova-lib/src/cordova/prepare.js#L49],
which [populates options.platforms with platforms list installed in the
project|https://github.com/apache/cordova-lib/blob/2a178662acfad9c779114fddd815e484fc1b6f1d/cordova-lib/src/cordova/util.js#L278].
This causes {{hooksRunner.fire('after_prepare'}} to be called with populated
{{options.platforms}} - that's why the [test is
passing|https://github.com/apache/cordova-lib/blob/2a178662acfad9c779114fddd815e484fc1b6f1d/cordova-lib/spec-cordova/prepare.spec.js#L139]
(this is due to the issue https://github.com/jasmine/jasmine/issues/444, which
is spy call arguments are references) even though the real call to
{{before_prepare}} is missing both {{options.platforms}} and {{options.paths}}.
> platform-specific plugin prepare hooks should be run even when no platforms
> are specified
> -----------------------------------------------------------------------------------------
>
> Key: CB-11687
> URL: https://issues.apache.org/jira/browse/CB-11687
> Project: Apache Cordova
> Issue Type: Bug
> Components: CordovaLib
> Reporter: Sergey Shakhnazarov
> Assignee: Sergey Shakhnazarov
>
> plugin.xml:
> {code}
> <platform name="windows">
> <hook type="before_build" src="hooks/windows/hook.js"/>
> <hook type="before_prepare" src="hooks/windows/hook.js"/>
> <hook type="after_build" src="hooks/windows/hook.js"/>
> <hook type="after_prepare" src="hooks/windows/hook.js"/>
> {code}
> hook.js:
> {code}
> module.exports = function(context) {
> console.log('context.hook: ' + context.hook);
> }
> {code}
> {{cordova prepare --verbose | findstr "context.hook"}} # no hooks runs
> {{cordova build --verbose | findstr "context.hook"}} # before_build,
> before_prepare, after_prepare, after_build runs
> Expected - {{cordova prepare}} should run plugin' platform-specific hooks as
> well.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]