vaffel / react-components

Searchable repository of React-components

Home Page:http://react-components.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reduce dependency on NPM

Daniel15 opened this issue · comments

Using NPM is pretty cool, but there's a few different package systems, each with their own advantage and disadvantages, and not everyone uses NPM for their package management. It would be nice to have the site totally decoupled from NPM and pull from multiple data sources.

Edit: From one of my comments:
Even if it's only NPM for now, it'd be good to ensure there's not a lot of coupling between the site and NPM so that it's easy to add additional package sources later on. Ideally all the code that communicates with NPM should be in separate modules and the rest of the code shouldn't have deep knowledge of NPM. The code may already be structured like this, I haven't looked through it yet :)

I'm slightly worried about having to support a number of different package systems - bower, component, due, volo, spm... It would be a nice thing to have, but it would take quite some time to build support for all of them. If enough people request support for one package manager, I might see the benefit of looking into it.

npm is the defacto package manager for react. Many components are only available through npm, meaning not even a standalone/umd build is released. It'd be very strange if a component wasn't on npm at all, so there isn't much value in also searching other package managers.

You can check the package's repo to see if there's a bower.json file, and maybe that could even be done by this site and it could show a bower badge.

npm is the defacto package manager for react.

Maybe for people that use Node.js, but not for people that use other server-side technologies. People that already use a package manager for their language of choice may not want to use yet another different package manager purely for React packages. To give an example of another repository that has frontend packages, jQuery on NuGet has over 7.6 million downloads. Additionally, if I'm already using my own version of React (or hotlinking it from the Facebook CDN), I don't want to install an NPM package that pulls in its own version of React.

Many components are only available through npm, meaning not even a standalone/umd build is released

That seems like a bad/strange decision though.

People that already use a package manager for their language of choice may not want to use yet another different package manager purely for React packages.

That's from a user perspective. But from the point of view of package developer/maintainer, I think it's a reasonable assumption that one would put their package on npm. While npm is not an exclusive choice for JS code distribution, it is simply too big to be ignored. Maybe this is my bias though... I'd love to be proven wrong. What are packages (popular or not, but which have its users) which ignore npm today?

Even if it's only NPM for now, it'd be good to ensure there's not a lot of coupling between the site and NPM so that it's easy to add additional package sources later on. Ideally all the code that communicates with NPM should be in separate modules and the rest of the code shouldn't have deep knowledge of NPM. The code may already be structured like this, I haven't looked through it yet :)

What are packages (popular or not, but which have its users) which ignore npm today?

I don't think Highcharts has an NPM package and it's one of the best charting libraries. TinyMCE has one but it gets barely any downloads (220 download from npm in the past month even though they have over 2000 stars on their Github repo).

Not sure about React components that aren't on npm, I haven't used any third-party React components and I use React directly off Facebook's CDN.

I'm going to close this, for now. I'm still seeing most new React components being published on NPM, and integrating/merging with other systems will take a little too much time right now. Will reopen if we see a shift towards other package managers/ecosystems.