[ 
https://issues.apache.org/jira/browse/CB-10986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15236823#comment-15236823
 ] 

ASF GitHub Bot commented on CB-10986:
-------------------------------------

Github user vladimir-kotikov commented on a diff in the pull request:

    https://github.com/apache/cordova-lib/pull/425#discussion_r59339491
  
    --- Diff: cordova-lib/src/cordova/util.js ---
    @@ -401,3 +407,48 @@ function getAvailableNpmVersions(module_name) {
             });
         });
     }
    +
    +/**
    + * Extracts the name and spec from an npm style package spec that follows 
the
    + * format of (@scope/)?package(@spec)?
    + * @param {String} raw  The raw npm style package spec
    + * @returns {String[]}  An array containing the package name with optional 
scope
    + *                      followed by the plugin spec (either value may be 
null
    + *                      if not matched)
    + */
    +function parseRegistryPluginSpec(raw) {
    +    var split = NPM_SPEC_REGEX.exec(raw);
    +    if (split) {
    +        var package = split[1] ? split[1] + split[2] : split[2];
    +        var version = split[3] || null;
    +        return [package, version];
    +    } else {
    +        return [null, null];
    +    }
    +}
    +
    +/**
    + * Extracts the package name from an npm style package spec of the format
    + * (@scope/)?package(@spec)?. Useful for getting the id used for 
directories
    + * created for install
    + * @param {String} raw  The raw npm style package spec
    + * @returns {String}    The package name without scope or version or the 
original
    + *                      string if it isn't an npm package spec
    + */
    +function extractPluginId(raw) {
    +    var split = NPM_SPEC_REGEX.exec(raw);
    +    return split ? split[2] : raw;
    +}
    +
    +
    +/**
    + * Determines if a string is a package spec of the format 
@scope/package(@spec)?
    + * or not
    + * @param {String} raw  The raw npm style package spec
    + * @returns {boolean}   True if the given string follows the format of an 
npm style
    + *                      package spec or false otherwise
    + */
    +function isScopedRegistryPluginSpec(raw) {
    --- End diff --
    
    This function might be unnecessary if `parseRegistryPluginSpec` would 
return a structured result with e.g. `scope` field, so you can just check if 
`spec.scope` is defined


> Unable to install npm scoped plugin with [email protected]
> ----------------------------------------------------------
>
>                 Key: CB-10986
>                 URL: https://issues.apache.org/jira/browse/CB-10986
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CordovaLib
>    Affects Versions: 6.1.0
>            Reporter: Darryl Pogue
>            Assignee: Richard B Knoll
>              Labels: regression, reproduced, triaged
>
> {code}
> $ cordova create MyProject
> $ cd ./MyProject
> $ cordova platform add android
> $ cordova plugin add @dpogue/cordova-plugin-crosswalk-webview
> Error: Cannot find plugin.xml for plugin 'plugins'. Please try adding it 
> again.
> {code}
> This works as expected with [email protected].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to