[
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]