[
https://issues.apache.org/jira/browse/CB-13797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16504597#comment-16504597
]
Ken Naito edited comment on CB-13797 at 6/7/18 12:31 PM:
---------------------------------------------------------
I confirmed this issue.
One solution for https://github.com/dpogue/cb-13797 is removing
"code-push": "^2.0.4" in dependencies in package.json.
When we do 'npm install', the npm installs [email protected] in node_modules.
Then we do 'cordova prepare', the cordova installs cordova-plugin-code-push.
Because the cordova-plugin-code-push depends on [email protected], the cordova
will install [email protected].
At this time, depTree in cordova-fetch is as follows (npm ls --depth=0)
{code}
├─┬ UNMET DEPENDENCY [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
{code}
Next the cordova will install cordova-plugin-dialogs, then treeDep becomes
{code}
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
{code}
Comparing both two depTrees, getJsonDiff(tree1, tree2) in cordova-fetch returns
'code-push'.
This is because 'cordova install cordova-plugin-dialogs' fails with the error
{code}
Failed to install 'cordova-plugin-code-push': Error: Expected plugin to have ID
"cordova-plugin-dialogs" but got "code-push".
{code}
In order to resolve this issue, cordova-fetch must find the correct id of
installed package.
was (Author: knaito):
I confirmed this issue.
One solution for https://github.com/dpogue/cb-13797 is removing
"code-push": "^2.0.4" in dependencies in package.json.
When we do 'npm install', the npm installs [email protected] in node_modules.
Then we do 'cordova prepare', the cordova installs cordova-plugin-code-push.
Because the cordova-plugin-code-push depends [email protected], the cordova will
install [email protected].
At this time, depTree in cordova-fetch is as follows (npm ls --depth=0)
{code}
├─┬ UNMET DEPENDENCY [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
{code}
Next the cordova will install cordova-plugin-dialogs, then treeDep becomes
{code}
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
{code}
Comparing both two depTrees, getJsonDiff(tree1, tree2) in cordova-fetch returns
'code-push'.
This is because 'cordova install cordova-plugin-dialogs' fails with the error
{code}
Failed to install 'cordova-plugin-code-push': Error: Expected plugin to have ID
"cordova-plugin-dialogs" but got "code-push".
{code}
In order to resolve this issue, cordova-fetch must find the correct id of
installed package.
> Fetch failing to install plugin dependencies
> --------------------------------------------
>
> Key: CB-13797
> URL: https://issues.apache.org/jira/browse/CB-13797
> Project: Apache Cordova
> Issue Type: Bug
> Components: cordova-fetch
> Environment: [email protected]
> [email protected]
> [email protected]
> [email protected]
> [email protected]
> [email protected]
>
> Reporter: Darryl Pogue
> Assignee: Steve Gill
> Priority: Critical
>
> I'm currently unable to install Microsoft's cordova-plugin-code-push due to
> some incredibly confusing errors when installing the plugin dependencies.
> The plugin [lists 3
> dependencies|https://github.com/Microsoft/cordova-plugin-code-push/blob/e828a5eacd42dcd81bacf121a3e62735c3500227/plugin.xml#L10-L12]
> in plugin.xml.
> Cordova successfully installs the first (code-push) dependency.
> Cordova attempts to install the second (cordova-plugin-device) dependency. It
> appears that the npm install is successful.
> At the end of the npm install, cordova-fetch [attempts to
> discover|https://github.com/apache/cordova-fetch/blob/master/index.js#L100]
> what was just installed. Rather than finding "cordova-plugin-device", it
> finds "code-push" for a second time.
> Then it fails with the following confusing error message:
> {noformat}
> Failed to install 'cordova-plugin-code-push': Error: Expected plugin to have
> ID "cordova-plugin-dialogs" but got "code-push".{noformat}
> The full verbose output from {{cordova prepare}} is below:
> {noformat}
> Discovered plugin "cordova-plugin-code-push" in config.xml. Adding it to the
> project
> No scripts found for hook "before_plugin_add".
> Calling plugman.fetch on plugin "cordova-plugin-code-push@^1.11.2"
> Running command: npm install cordova-plugin-code-push@^1.11.2 --production
> --no-save
> Command finished with error code 0: npm
> install,cordova-plugin-code-push@^1.11.2,--production,--no-save
> Copying plugin "/PROJECT/node_modules/cordova-plugin-code-push" =>
> "/PROJECT/plugins/cordova-plugin-code-push"
> Calling plugman.install on plugin "/PROJECT/plugins/cordova-plugin-code-push"
> for platform "android
> Installing "cordova-plugin-code-push" for android
> Running command: /PROJECT/platforms/android/cordova/version
> Command finished with error code 0:
> /PROJECT/platforms/android/cordova/version
> Dependencies detected, iterating through them...
> Requesting plugin "[email protected]".
> Plugin dependency "code-push" not fetched, retrieving then installing.
> Running command: npm install [email protected] --production --no-save
> Command finished with error code 0: npm
> install,[email protected],--production,--no-save
> Copying plugin "/PROJECT/node_modules/code-push" =>
> "/PROJECT/plugins/code-push"
> Installing "code-push" for android
> Finding scripts for "before_plugin_install" hook from plugin code-push on
> android platform only.
> No scripts found for hook "before_plugin_install".
> Install start for "code-push" on android.
> Beginning processing of action stack for android project...
> Action stack processing complete.
> Install complete for code-push on android.
> Finding scripts for "after_plugin_install" hook from plugin code-push on
> android platform only.
> No scripts found for hook "after_plugin_install".
> Requesting plugin "cordova-plugin-dialogs@>=1.1.1".
> Plugin dependency "cordova-plugin-dialogs" not fetched, retrieving then
> installing.
> Running command: npm install cordova-plugin-dialogs@>=1.1.1 --production
> --no-save
> Command finished with error code 0: npm
> install,cordova-plugin-dialogs@>=1.1.1,--production,--no-save
> Copying plugin "/PROJECT/node_modules/code-push" =>
> "/PROJECT/plugins/code-push"
> Failed to install 'cordova-plugin-code-push': Error: Expected plugin to have
> ID "cordova-plugin-dialogs" but got "code-push".
> at checkID (/PROJECT/node_modules/cordova-lib/src/plugman/fetch.js:215:15)
> at /PROJECT/node_modules/cordova-lib/src/plugman/fetch.js:199:9
> at _fulfilled (/PROJECT/node_modules/cordova-lib/node_modules/q/q.js:787:54)
> at self.promiseDispatch.done
> (/PROJECT/node_modules/cordova-lib/node_modules/q/q.js:816:30)
> at Promise.promise.promiseDispatch
> (/PROJECT/node_modules/cordova-lib/node_modules/q/q.js:749:13)
> at /PROJECT/node_modules/cordova-lib/node_modules/q/q.js:557:44
> at flush (/PROJECT/node_modules/cordova-lib/node_modules/q/q.js:108:17)
> at process._tickCallback (internal/process/next_tick.js:150:11)
> Failed to restore plugin "cordova-plugin-code-push" from config.xml. You
> might need to try adding it again. Error: Error: Expected plugin to have ID
> "cordova-plugin-dialogs" but got "code-push".{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]