+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 > > >
