Fork me on GitHub
#luminus
<
2016-12-19
>
Drew Verlee05:12:07

So eager to jump right into my first toy re-frame full-stack application i did some searching and thought that using this would be the best way to get started: lein new luminus vending_machine +re-frame +datomic sadly i hit an unexpected error right away: ‘lien uberjar`…

Compiling "target/cljsbuild/public/js/app.js" failed.
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.CharMatcher.javaUpperCase()Lcom/google/common/base/CharMatcher;, compiling:(/private/var/folders/qx/mn5d4sjn7w5b4fxs2l15lzk80000gn/T/form-init612906228494054095.clj:1:124)
So someone is looking for a method and it isn’t defined. But i’m not sure who and why.I did some searching and all i could find was people talking about dependency problems. So i tried to track that down.. lein deps :tree and i get about 50 lines of "Possibly confusing dependencies found:” with recommendations on how to do exclusions, none of which i’m sure will help. Any suggestions on maybe a better course of action in general or for tackling this specific problem? I assume it should be easy to get something off the shelve working with two popular tools like re-frame and datomic. I dont work in clojure so i’m not sure where or who to ask these types of questions to. Any help apperciated.

gdeer8119:12:48

@drewverlee I'm experimenting with each of the profiles and I think it might be the re-frame profile that is causing the issue

gdeer8120:12:29

or it might be the datomic profile

Drew Verlee20:12:03

@gdeer81 Thanks! This is my first try at a lot of things. Datomic, re-frame, luminus, so im not sure what to expect.

gdeer8120:12:14

it looks like it might be the combination of the two. that's the only way I can reproduce the issue

gdeer8120:12:34

+datomic on its own works fine. +re-frame on its own works fine

sveri20:12:52

@drewverlee You might want to try different version of datomic / re-frame

sveri20:12:35

That said, it will be tough to put together different new technologies and try to make them work. Demands a lot of discipline and focus.

shaun-mahood20:12:32

@drewverlee: I’m not sure how difficult it would be to add datomic manually, but re-frame is really easy to add on top of an existing base if you want to start with Datomic and the server-side part of your application. Happy to help if that’s the way you want to get started.

Drew Verlee20:12:01

@sveri @shaun-mahood Gotcha. I got pulled into something. Ill check back on this tonight. 🙂

gdeer8120:12:11

@drewverlee datomic free is using Guava 18 and the clojurescript deps are using Guava 19. since cljsbuild includes them both in the classpath it causes issues

gdeer8121:12:11

@drewverlee so to fix it you could exclude guava from datomic free. in your project.clj make the dependency for datomic look like this [com.datomic/datomic-free "0.9.5394" :exclusions [com.google.guava/guava org.slf4j/log4j-over-slf4j org.slf4j/slf4j-nop]]

gdeer8121:12:46

if that doesn't work you might have to do lein clean before you uberjar. if cleaning doesn't work then deleting the entire folder, regenerating, updating the exclusion, and then uberjaring it will

mlev21:12:09

I am working through the book Web Dev with Clojure 2nd Ed, and I am having trouble seeing the "Hello, World!" output on LocalHost:3000 when I run the code on pages 69-70. The cljs file is: (ns guestbook.core) (-> (.getElementById js/document "content") (.-innertHTML) (set! "Hello, World!")) I've also updated the home.html and base.html files accordingly. When I run lein cljsbuild once and then lein run, I see the guestbook Home and About tabs but no "Hello, World!" message. I am also not seeing it using the Reagent version on page 71. Any help would definitely be appreciated.

mlev22:12:16

There are additional, follow up discussions about this in the #beginners channel.