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

Reply via email to