+1 for publishing plugins to npm

We will need to come up with a good naming convention so that translating
from plugin id to npm package name would be trivial. Preferably with some
stable prefix (like cordova_plugin_) so that it would be easy to
distinguish plugins if they are listed with other dependencies in
package.json

Another problem to solve are the dependencies _between_ plugins. We don't
want nested dirs like node_modules/pluginX/node_modules/pluginY or multiple
version of the same plugin (like it happens for regular npm deps). Maybe
npm peer dependencies could be used to solve this
http://blog.nodejs.org/2013/02/07/peer-dependencies/

For experimenting with this, there is no need to modify cordova-lib. We
just need to publish some experimental plugins to npm registry, let npm
download them during npm install and then add ./node_modules to searchpath.
I tried this with platforms in https://github.com/kamrik/CordovaGulpTemplate


On Thu, Jan 8, 2015 at 6:02 PM, Steven Gill <[email protected]> wrote:

> This is rad! Definitely a great example showing the JS API.
>
> I am thinking about also starting to publish our plugins to npm and add a
> flag to plugman install to fetch from npm instead of cordova plugins
> registry. Thoughts?
>
> On Thu, Jan 8, 2015 at 1:09 PM, Mark Koudritsky <[email protected]> wrote:
>
> > On Thu, Jan 8, 2015 at 3:47 PM, Michal Mocny <[email protected]>
> wrote:
> >
> > > If we add node_modules to search path, will we be able to adjust which
> > > versions of platforms/plugins it uses just by modifying package.json?
> > >
> > >
> > Since platforms can be added by path. You can replace
> > platforms = ['android']
> > with
> > platforms = ['/path/to/local/cordova-android']   // Should work for using
> > e.g. cordova-android 4.x
> > or
> > platforms = ['../node_modules/cordova-android']
> >
> >
> > > Not sure if platforms use search path, or just plugins?  Also not sure
> if
> > > we can install plugins from our registry using npm proper, but you can
> > use
> > > the git repos as a workaround if not.
> > >
> >
> > For plugins it's more tricky (other npm repo, different dependency
> model).
> > Some options are:
> >  - use private cordova subsection in package.json and store plugin info
> > including versions there in whatever format  we want
> >
>

Reply via email to