[
https://issues.apache.org/jira/browse/CB-10239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15114766#comment-15114766
]
Steve Gill commented on CB-10239:
---------------------------------
I've done some investigating. This is due to the fact that there are various
places where we check to see if the platform you are trying to install is in
the supported Platforms List
https://github.com/apache/cordova-lib/blob/master/cordova-lib/src/platforms/platformsConfig.json
These checks all happen before the package even gets fetched. So I can't just
read package.json and do the checks using package-name.
I've been working through removing these checks, but a lot of the code in
lazy_load.js is based on it.
https://github.com/apache/cordova-lib/blob/master/cordova-lib/src/cordova/lazy_load.js#L106
This is something I am going to bump until after cordova 6 as I'm not sure what
the ramifications of removing all of the checks would be.
This code
https://github.com/apache/cordova-lib/blob/master/cordova-lib/src/cordova/platform.js#L86
will also have to be updated to handle scoped packages.
Something like
```
var scoped = false;
if (target[0] === '@') {
scoped = true;
target = target.slice(1)
console.log(target)
}
var parts = target.split('@');
var platform = parts[0];
var spec = parts[1];
if(scoped) {
platform = '@' + platform;
}
console.log(platform)
```
> Installing platforms from scoped npm packages
> ---------------------------------------------
>
> Key: CB-10239
> URL: https://issues.apache.org/jira/browse/CB-10239
> Project: Apache Cordova
> Issue Type: Improvement
> Components: CordovaLib
> Affects Versions: 3.5.0
> Reporter: Darryl Pogue
> Labels: cordova-6.0.0, cordova-fetch, triaged
>
> I have a bugfix branch for a platform, and while waiting for it to be merged
> and released, I published my fork of that platform to a scoped package on npm
> (i.e., @dpogue/cordova-android).
> In config.xml, there does not appear to be a way to specify that {{cordova
> prepare}} should restore that scoped package instead of the canonical Apache
> one.
> \\
> Attempt #1:
> {code:xml}
> <engine name="@dpogue/cordova-android" spec="~4.1.1" />
> {code}
> results in a warning being printed about a null or unrecognized platform.
> \\
> Attempt #2:
> {code:xml}
> <engine name="android" spec="@dpogue/cordova-android~4.1.1" />
> {code}
> results in pulling the Apache version from npm, ignoring my scoped package.
> A workaround for now is to use a git URL, but the advantage of npm is that it
> can download a tarball without the network cost of doing a full git clone.
> \\
> Also worth noting that scoped npm packages are supported with plugins:
> {code:xml}
> <plugin name="@dpogue/cordova-plugin-crosswalk-webview" spec="~1.4.0" />
> {code}
> works as intended.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]