reagent-project / reagent-template

A Leiningen template for projects using Reagent.
MIT License
394 stars 55 forks source link

lein figwheel -> java.io.FileNotFoundException: Could not locate cljs/analyzer__init.class ... #106

Closed Reefersleep closed 8 years ago

Reefersleep commented 8 years ago

First: thank you for your work!

After having generated a new project with this template using lein new reagent <name>, cd'ing into the project directory and doing lein figwheel, I get the following stacktrace. I'm using leiningen 2.5.3 on a Windows computer.

I've used an older version of the template before and been working succesfully with it for a while in creating an application, and I wanted to port my app code to the new template in the hope of easily deploying to Heroku :)

clojure.lang.Compiler$CompilerException: java.io.FileNotFoundException: Could not locate cljs/analyzer__init.class or cljs/analyzer.clj on classpath: , compiling:(figwheel_sidecar/utils.clj:1:1)
 at clojure.lang.Compiler.load (Compiler.java:7142)
    clojure.lang.RT.loadResourceScript (RT.java:370)
    clojure.lang.RT.loadResourceScript (RT.java:361)
    clojure.lang.RT.load (RT.java:440)
    clojure.lang.RT.load (RT.java:411)
    clojure.core$load$fn__5066.invoke (core.clj:5641)
    clojure.core$load.doInvoke (core.clj:5640)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$load_one.invoke (core.clj:5446)
    clojure.core$load_lib$fn__5015.invoke (core.clj:5486)
    clojure.core$load_lib.doInvoke (core.clj:5485)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$load_libs.doInvoke (core.clj:5524)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$require.doInvoke (core.clj:5607)
    clojure.lang.RestFn.invoke (RestFn.java:551)
    figwheel_sidecar.config$eval7742$loading__4958__auto____7743.invoke (config.clj:1)
    figwheel_sidecar.config$eval7742.invoke (config.clj:1)
    clojure.lang.Compiler.eval (Compiler.java:6703)
    clojure.lang.Compiler.eval (Compiler.java:6692)
    clojure.lang.Compiler.load (Compiler.java:7130)
    clojure.lang.RT.loadResourceScript (RT.java:370)
    clojure.lang.RT.loadResourceScript (RT.java:361)
    clojure.lang.RT.load (RT.java:440)
    clojure.lang.RT.load (RT.java:411)
    clojure.core$load$fn__5066.invoke (core.clj:5641)
    clojure.core$load.doInvoke (core.clj:5640)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$load_one.invoke (core.clj:5446)
    clojure.core$load_lib$fn__5015.invoke (core.clj:5486)
    clojure.core$load_lib.doInvoke (core.clj:5485)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$load_libs.doInvoke (core.clj:5524)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$require.doInvoke (core.clj:5607)
    clojure.lang.RestFn.invoke (RestFn.java:457)
    leiningen.figwheel$eval7693$loading__4958__auto____7694.invoke (figwheel.clj:1)
    leiningen.figwheel$eval7693.invoke (figwheel.clj:1)
    clojure.lang.Compiler.eval (Compiler.java:6703)
    clojure.lang.Compiler.eval (Compiler.java:6692)
    clojure.lang.Compiler.load (Compiler.java:7130)
    clojure.lang.RT.loadResourceScript (RT.java:370)
    clojure.lang.RT.loadResourceScript (RT.java:361)
    clojure.lang.RT.load (RT.java:440)
    clojure.lang.RT.load (RT.java:411)
    clojure.core$load$fn__5066.invoke (core.clj:5641)
    clojure.core$load.doInvoke (core.clj:5640)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$load_one.invoke (core.clj:5446)
    clojure.core$load_lib$fn__5015.invoke (core.clj:5486)
    clojure.core$load_lib.doInvoke (core.clj:5485)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$load_libs.doInvoke (core.clj:5524)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$require.doInvoke (core.clj:5607)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    leiningen.core.utils$require_resolve.invoke (utils.clj:68)
    leiningen.core.utils$require_resolve.invoke (utils.clj:71)
    leiningen.core.main$lookup_task_var.invoke (main.clj:61)
    leiningen.core.main$pass_through_help_QMARK_.invoke (main.clj:68)
    leiningen.core.main$task_args.invoke (main.clj:71)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:308)
    leiningen.core.main$_main$fn__6136.invoke (main.clj:377)
    leiningen.core.main$_main.doInvoke (main.clj:366)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invoke (core.clj:624)
    clojure.main$main_opt.invoke (main.clj:315)
    clojure.main$main.doInvoke (main.clj:420)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    clojure.lang.Var.invoke (Var.java:388)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.main.main (main.java:37)
Caused by: java.io.FileNotFoundException: Could not locate cljs/analyzer__init.class or cljs/analyzer.clj on classpath:
 at clojure.lang.RT.load (RT.java:443)
    clojure.lang.RT.load (RT.java:411)
    clojure.core$load$fn__5066.invoke (core.clj:5641)
    clojure.core$load.doInvoke (core.clj:5640)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$load_one.invoke (core.clj:5446)
    clojure.core$load_lib$fn__5015.invoke (core.clj:5486)
    clojure.core$load_lib.doInvoke (core.clj:5485)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$load_libs.doInvoke (core.clj:5524)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$require.doInvoke (core.clj:5607)
    clojure.lang.RestFn.invoke (RestFn.java:457)
    figwheel_sidecar.utils$eval7748$loading__4958__auto____7749.invoke (utils.clj:1)
    figwheel_sidecar.utils$eval7748.invoke (utils.clj:1)
    clojure.lang.Compiler.eval (Compiler.java:6703)
    clojure.lang.Compiler.eval (Compiler.java:6692)
    clojure.lang.Compiler.load (Compiler.java:7130)
    clojure.lang.RT.loadResourceScript (RT.java:370)
    clojure.lang.RT.loadResourceScript (RT.java:361)
    clojure.lang.RT.load (RT.java:440)
    clojure.lang.RT.load (RT.java:411)
    clojure.core$load$fn__5066.invoke (core.clj:5641)
    clojure.core$load.doInvoke (core.clj:5640)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$load_one.invoke (core.clj:5446)
    clojure.core$load_lib$fn__5015.invoke (core.clj:5486)
    clojure.core$load_lib.doInvoke (core.clj:5485)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$load_libs.doInvoke (core.clj:5524)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$require.doInvoke (core.clj:5607)
    clojure.lang.RestFn.invoke (RestFn.java:551)
    figwheel_sidecar.config$eval7742$loading__4958__auto____7743.invoke (config.clj:1)
    figwheel_sidecar.config$eval7742.invoke (config.clj:1)
    clojure.lang.Compiler.eval (Compiler.java:6703)
    clojure.lang.Compiler.eval (Compiler.java:6692)
    clojure.lang.Compiler.load (Compiler.java:7130)
    clojure.lang.RT.loadResourceScript (RT.java:370)
    clojure.lang.RT.loadResourceScript (RT.java:361)
    clojure.lang.RT.load (RT.java:440)
    clojure.lang.RT.load (RT.java:411)
    clojure.core$load$fn__5066.invoke (core.clj:5641)
    clojure.core$load.doInvoke (core.clj:5640)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$load_one.invoke (core.clj:5446)
    clojure.core$load_lib$fn__5015.invoke (core.clj:5486)
    clojure.core$load_lib.doInvoke (core.clj:5485)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$load_libs.doInvoke (core.clj:5524)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$require.doInvoke (core.clj:5607)
    clojure.lang.RestFn.invoke (RestFn.java:457)
    leiningen.figwheel$eval7693$loading__4958__auto____7694.invoke (figwheel.clj:1)
    leiningen.figwheel$eval7693.invoke (figwheel.clj:1)
    clojure.lang.Compiler.eval (Compiler.java:6703)
    clojure.lang.Compiler.eval (Compiler.java:6692)
    clojure.lang.Compiler.load (Compiler.java:7130)
    clojure.lang.RT.loadResourceScript (RT.java:370)
    clojure.lang.RT.loadResourceScript (RT.java:361)
    clojure.lang.RT.load (RT.java:440)
    clojure.lang.RT.load (RT.java:411)
    clojure.core$load$fn__5066.invoke (core.clj:5641)
    clojure.core$load.doInvoke (core.clj:5640)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$load_one.invoke (core.clj:5446)
    clojure.core$load_lib$fn__5015.invoke (core.clj:5486)
    clojure.core$load_lib.doInvoke (core.clj:5485)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$load_libs.doInvoke (core.clj:5524)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$require.doInvoke (core.clj:5607)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    leiningen.core.utils$require_resolve.invoke (utils.clj:68)
    leiningen.core.utils$require_resolve.invoke (utils.clj:71)
    leiningen.core.main$lookup_task_var.invoke (main.clj:61)
    leiningen.core.main$pass_through_help_QMARK_.invoke (main.clj:68)
    leiningen.core.main$task_args.invoke (main.clj:71)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:308)
    leiningen.core.main$_main$fn__6136.invoke (main.clj:377)
    leiningen.core.main$_main.doInvoke (main.clj:366)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.lang.Var.invoke (Var.java:379)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invoke (core.clj:624)
    clojure.main$main_opt.invoke (main.clj:315)
    clojure.main$main.doInvoke (main.clj:420)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    clojure.lang.Var.invoke (Var.java:388)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.main.main (main.java:37)
yogthos commented 8 years ago

It might be a conflicting dependency in a plugin in your ~/.lein/profiles.clj, if you've got any plugins, try commenting them and see if the issue resolves.

Reefersleep commented 8 years ago

Hello @yogthos :)

My .lein/profiles.clj used to look like this:

 {:user {:plugins [[cider/cider-nrepl "0.10.0-SNAPSHOT"]
                  [refactor-nrepl "1.1.0"]]
        :dependencies [[org.clojure/tools.nrepl "0.2.11"]]}
 :repl {:dependencies [^:replace [org.clojure/tools.nrepl "0.2.11"]]}}

So I thought you might be on to something, and changed it to look like this:

{:user {:plugins []
        :dependencies []}}

But I still get the same error after opening up a new cmd and doing lein figwheel.

Reefersleep commented 8 years ago

It seems like other people have had a similar issue, but with a lein new figwheel <name> template: https://github.com/bhauman/lein-figwheel/issues/285 Maybe the error lies in figwheel? What bhauman is saying in the bottom of the thread about needing at least clojure 1.7 and doing a lein clean does not help me, as this reagent template specifies clojure 1.8, and the result is the same after a lein clean.

yogthos commented 8 years ago

Have you tried downgrading the project to clj 1.7, to see if that helps. I'm not able to reproduce this locally, so not sure what's tripping it up exactly.

Reefersleep commented 8 years ago

I have now - no difference.

I wonder what it could be. Aside from the Leiningen profile, do you know of anything configuration-wise that could influence my environment? Not that I have set up a whole lot of stuff, really - it's only the lein profile that I can think of.

The java on my PATH is 1.6-something, but lein -v reports Leiningen 2.5.3 on Java 1.8.0_65 Java HotSpot(TM) 64-Bit Server VM. Besides, I tried changing the java on PATH to 1.8-something, didn't make a difference.

yogthos commented 8 years ago

Might be worth referencing this on figwheel issues. Also, did you use any flags when creating the project, I've tried on a few machines with just lein new reagent myapp and that works fine.

Reefersleep commented 8 years ago

I used no flags at all, just lein new reagent appname.

Do you think it's better to comment on a closed issue (the one on the figwheel repo that I'm referencing) or open a new one? I'm not very well versed in github issue etiquette :)

yogthos commented 8 years ago

probably makes sense to comment on the closed one, since it does seem to be the same issue

Reefersleep commented 8 years ago

Thanks :) I'll do that.

Reefersleep commented 8 years ago

bhauman finally got it working with 0.5.0-6, so you should bump the figwheel version again :) According to him, it was to do with Leiningen pulling in Clojure 1.6 in the bootstrapping process, I think. I have no idea why this occurs, but he changed figwheel so that it works even if this happens, and gives you a warning upon startup if it does. I'll create an issue at the Leiningen repo regarding this behaviour. Great success!

yogthos commented 8 years ago

Ah great, I'll push out a new template with the latest figwheel. :+1:

p-b-west commented 6 years ago

This seems to be back with a vengeance.

Leiningen 2.8.1 on Java 1.8.0_161 Java HotSpot(TM) 64-Bit Server VM

Simplest example: $ lein new figwheel whatever $ cd whatever $ lein figwheel

Lots of stacktrace, including Caused by: java.io.FileNotFoundException: Could not locate cljs/analyzer__init.class or cljs/analyzer.clj on classpath:

yogthos commented 6 years ago

You're using the figwheel template in your example. This project is the reagent template.

p-b-west commented 6 years ago

Sorry about that. There have been a few references to this problem with figwheel, and I lighted on the wrong one.