

Why is distributing a react component so hard? - jarsbe

Things were so swell. I built a react.js component, I was so chuffed. I even put a gif on the readme https:&#x2F;&#x2F;github.com&#x2F;jarsbe&#x2F;react-polyselect.<p>I wanted to share my work for others to use (including myself). A simple request right? I remember the days (I&#x27;m so old) when I could make a jQuery plugin, and use it in my project by adding a script tag. It was easy.<p>We seem to have believe now that those methods are a childish way to build a project. You should use a JS tooling system in order to concat, minify, transpile, compile and require. Oh and configure. Configure, configure, configure.<p>I&#x27;ve spent more time working with these tool chain than working on my component. It shouldn&#x27;t be like that.<p>Why is it harder now to share code than when jQuery plugins were popular? Shouldn&#x27;t it be easier now than ever?<p>I don&#x27;t have answers - I&#x27;m simply good at complaining! But I can clearly see that without a simple and easy way to share and use code we are being inefficient. I&#x27;m a programmer. I don&#x27;t like being inefficient.<p>So please, I beg of you, don&#x27;t make me spend hours lurking on irc channels, nagging for answers or rummaging through github projects in order for me to share my work! Instead enlighten me with an answer to this small question - how can I distribute my component?
======
Ronsenshi
From my little search, it seems like all you need to do is include your
component to the project folder and then "require()" it. Seems straightforward
enough - same as with any other node modules.

You can also upload your component to the npm, so that other could use it. By
adding "react-component" keyowrd to the description on npm, your component
should be available at [http://react-components.com/](http://react-
components.com/).

If you want to use in on the frontend right away, then maybe write it in AMD
format, so that you could load it via require.js?

~~~
jarsbe
It's that part at the end there - "write it in AMD format, so that you could
load it via require.js" \- it just isn't straightforward. Why can I not just
use it as is?

I know I'm being a bit silly silly here but it seems awfully difficult to get
started. Too difficult if you ask me. Am I missing something fundamental?

I can certainly get there in the end but there are a lot of configuration
tasks to get there.

~~~
Ronsenshi
Checked some of the available components and it seems like it should be
possible to "just include" .js with the component and use in in the app. Not
the best way to go about it as it is not that good of a practice, but possible
nevertheless.

This is all about modules. It is a good programming practice to turn piece of
code that can be used in multiple projects into the module, so that it is
easier to load them up in the next project.

You can check node.js docs on the example of modules and how your code should
work so:
[http://nodejs.org/api/modules.html](http://nodejs.org/api/modules.html)

In node.js it is trivial - just like loading external modules in python (if
you ever worked with it).

RequireJS is a tough nut, I give you that. That's mainly because of the
asynchronous nature of the script loading on the web. Can't really recommend
anything on the topic. I myself spent quite some time before it clicked.

~~~
jarsbe
Thank you for the advice. I will forge on as I suppose that is the only
option!

