Fork me on GitHub

A question I posted in the component channel but also has relevance here. Anyone gone through this issue?

Has anyone had success using component with cljs and reagent? I can render correctly on load. However, every time I make a code change and the cljs code is reloaded, it seems the html head and body are wiped clean. Iā€™m using boot with boot-cljs and boot-reload


Hi fellow boot'ers, do you have any recommendation of a clj+cljs library project?


That I could shamelessly copy. As a starting point for the boot build.


Fancy, thanks for the share @craigy


I have a single file in my source tree that escapes the notice of watch. Changes to any other files are detected, but only the first change to this file is detected. is there some kind of cache that needs to be cleaned?


I'm having trouble setting up dirac.


Does someone ahve a minimal build.boot I can just copy/paste and start from there?


@qqq tenzing has a +dirac option which you could take a look at.


@pepe just deployed Tenzing 0.4.2 with the properly pinned boot-devtools, sorry for the delay šŸ™‚


@martinklepsch : OMG, dirac debugging is amazing


cljs without dirac should be banned


I'm using

This is almost working for me, except objects are displayed as JS objects instead of CLJ objects. I built an app using the template, with -a +reagent -a +dirac but the problem I get into is:
boot repl -c
==> Can't change/establish root binding of: *cljs-repl-env* with set
when I view in browser, and I trigger an exception, I can see the source code fine; I also get stack traces however, although 1 appears as 1, 2 appears as 2 stuff like [1 2 3] or {:foo :bar} appears as JS objects instead of CLJS objects so I'm missing some last step. Anyone know what's going on?


@qqq You need cljs-devtools for inspecting Cljs objects (so +devtools)


Is it safe to use pods from the build.boot file outside of tasks? Im looking to make a "corporate dependency" that won't interfere with the project dependencies


@juhoteperi : yeah, that definitely confused me for the following reason: (1) dirac claims itself to be a FORK of devtools (2) dirac says it doesn't want any other middleware involved so I interpolated that to mean "well, I don't want devtools + fork of devtools on at same time"


Dirac is Chrome DevTools fork, not Cljs-devtools fork


@flyboarder can you elaborate? not clear to me what you want to do.


you mean using the pod namespace in fns?


yeah that would be available from the boot.user namespace


that should be ok right, havnt tried yet


I want to make sure I dont create circular dependencies between my utility libraries, by isolating the environments


i don't entirely understand, but i have used the pod functions, outside of a pod env, no prob.


have you run pods outside of tasks?


I assume it will work, I'll play with it later tonight i think


@flyboarder totally safe you can make pods at repl etc


i.e. in fns where i need the capabilities of the pod namespace, but i have not created a pod. i believe every boot task is already in a default pod. not sure what you mean by "available from the boot.user namespace". maybe because i'm not really an expert. šŸ˜‰


@mobileink from the repl would have been a better way to say what I intended, luckily alan got it šŸ˜›


"run pods outside of tasks". maybe you're doin sth fancier than i've done. to me, when i'm running boot, everything is "inside a task". are you taliking about e.g. app code that wants to use boot stuff? which could hapoen wven if you're using e g. leiningen?


no im looking to make a package that every developer will have in their profile.boot


@flyboarder I might look at your boot tasks for node.js very soon šŸ˜€ finally our node.js project is starting


excellent! i would like to start on making it live-reload compatible instead of restarting the server each time, but that requires a shim I believe


I think the main issue I see is to handle the many many files in node_modules. By live reload you mean in case you add a dep ?


I mean for development, when rebuilding cljs -> js


there are 2 cases to handle, when the server related cljs code changes and when the client cljs code changes


the server related code will always need a restart the client code can be reloaded same way boot-reload does it except without the java server we should be able to include that as part of the server compilation via a shim


Ah you want to exclude Java from the equation..I mean I thought you could get away now with two repls and two cljs compileer/reload running


Of course your solution sounds fasder


I guess we could just use boot-reload and include the java server, but that seems needless to run another server to serve client files, would probably work for now tho


since the alternative doesnt exist yet šŸ˜›