hurrymaplelad / teact

Build React element trees by composing functions
MIT License
26 stars 6 forks source link

Not working inside a browser #11

Open ycrepeau opened 7 years ago

ycrepeau commented 7 years ago

I try to use teact in a Ruby on Rails application.

'require' is only supported by node, not by the Javascript engine running inside browsers.

I am trying to solve this issue with Browserify but Browserify seems to be unable to see the teact.coffee (renamed teact.js.coffee) file.

hurrymaplelad commented 7 years ago

Right! You'll need some sort of compilation pipeline that understands both commonjs requires and coffee script. I'm not super familiar with rails, but this might get you started: https://github.com/goodeggs/teacup-rails

Links to projects or config files would help for more troubleshooting.

mattlima commented 7 years ago

I had the same issue and was in a rush, didn't want to establish a separate gulp/browserify/webpack/whatever pipeline. You can use teact in a few minutes with Rails with the following dirty hack:

  1. add teact.coffee to your assets/javascripts folder. Append the following to the end of the file to make sure Teact is 'exported' as a global:
    window.Teact = Teact
  2. Add teact to the manifest in application.js (or wherever) the usual way:
    //= require teact
  3. Grab whichever of Teact's bound functions you need in your local .coffee file, for example
    {crel, pureComponent} = new Teact().tags()

Again, I cannot emphasize enough that this is a nasty hack, but if you're on a deadline it may help.

--EDIT--

Almost immediately after posting this I found I needed another npm lib in my rails project so I decided I needed a less hacky solution. This one worked for me: https://blog.ravenxce.com/using-npm-with-rails/

jahbini commented 7 years ago

Brunch has several skeletons that assemble coffeescript and js along with npm modules for the browser -- http://brunch.io/skeletons

oh, yes, it manages CSS stuff too