luminus-framework / luminus-template

a template project for the Luminus framework
http://www.luminusweb.net/
MIT License
645 stars 147 forks source link

shadow-cljs fails to load #556

Closed egli closed 2 years ago

egli commented 2 years ago

I cannot run shadow-cljs in a project newly created with the template:

$ lein new luminus guestbook +h2 +re-frame
Generating a Luminus project.
$ cd guestbook/
$ grep Luminus README.md 
generated using Luminus version "4.21"
$ npm install
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.

added 98 packages, and audited 99 packages in 3s

3 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
$ shadow-cljs --cli-info
shadow-cljs - config: /home/egli/src/guestbook/shadow-cljs.edn
=== Version
jar:            2.16.5
cli:            2.16.5
deps:           1.3.2
config-version: 2.16.5

=== Paths
cli:     /home/egli/src/guestbook/node_modules/shadow-cljs/cli/dist.js
config:  /home/egli/src/guestbook/shadow-cljs.edn
project: /home/egli/src/guestbook
cache:   .shadow-cljs

=== Java
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-8u302-b08-0ubuntu2-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)

=== Source Paths

$ shadow-cljs watch app
shadow-cljs - config: /home/egli/src/guestbook/shadow-cljs.edn
shadow-cljs - running: lein with-profile +dev run -m shadow.cljs.devtools.cli --npm watch app
--- SHADOW-CLJS FAILED TO LOAD! ----------------------

This is most commonly caused by a dependency conflict.
When using deps.edn or project.clj you must ensure that all
required dependencies are provided with the correct version.

You are using shadow-cljs version: 2.15.12

The important dependencies are:

  org.clojure/clojure "1.10.3"
  org.clojure/clojurescript "1.10.879"
  com.google.javascript/closure-compiler-unshaded "v20210505"

Please verify that you are loading these versions.
You can find all required dependencies here:

  https://clojars.org/thheller/shadow-cljs/versions/2.15.12

Please refer to the Guide for more information:

  https://shadow-cljs.github.io/docs/UsersGuide.html#failed-to-load

-----------------------------------------------------

The error encountered was:

Syntax error compiling at (shadow/build/closure.clj:1:1).
    at clojure.lang.Compiler.load(Compiler.java:7652)
    at clojure.lang.RT.loadResourceScript(RT.java:381)
    at clojure.lang.RT.loadResourceScript(RT.java:372)
    at clojure.lang.RT.load(RT.java:459)
    at clojure.lang.RT.load(RT.java:424)
    at clojure.core$load$fn__6856.invoke(core.clj:6115)
    at clojure.core$load.invokeStatic(core.clj:6114)
    at clojure.core$load.doInvoke(core.clj:6098)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5897)
    at clojure.core$load_one.invoke(core.clj:5892)
    at clojure.core$load_lib$fn__6796.invoke(core.clj:5937)
    at clojure.core$load_lib.invokeStatic(core.clj:5936)
    at clojure.core$load_lib.doInvoke(core.clj:5917)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$load_libs.invokeStatic(core.clj:5974)
    at clojure.core$load_libs.doInvoke(core.clj:5958)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$require.invokeStatic(core.clj:5996)
    at clojure.core$require.doInvoke(core.clj:5996)
    at clojure.lang.RestFn.invoke(RestFn.java:551)
    at shadow.build.js_support$eval29097$loading__6737__auto____29098.invoke(js_support.clj:1)
    at shadow.build.js_support$eval29097.invokeStatic(js_support.clj:1)
    at shadow.build.js_support$eval29097.invoke(js_support.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7181)
    at clojure.lang.Compiler.eval(Compiler.java:7170)
    at clojure.lang.Compiler.load(Compiler.java:7640)
    at clojure.lang.RT.loadResourceScript(RT.java:381)
    at clojure.lang.RT.loadResourceScript(RT.java:372)
    at clojure.lang.RT.load(RT.java:459)
    at clojure.lang.RT.load(RT.java:424)
    at clojure.core$load$fn__6856.invoke(core.clj:6115)
    at clojure.core$load.invokeStatic(core.clj:6114)
    at clojure.core$load.doInvoke(core.clj:6098)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5897)
    at clojure.core$load_one.invoke(core.clj:5892)
    at clojure.core$load_lib$fn__6796.invoke(core.clj:5937)
    at clojure.core$load_lib.invokeStatic(core.clj:5936)
    at clojure.core$load_lib.doInvoke(core.clj:5917)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$load_libs.invokeStatic(core.clj:5974)
    at clojure.core$load_libs.doInvoke(core.clj:5958)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$require.invokeStatic(core.clj:5996)
    at clojure.core$require.doInvoke(core.clj:5996)
    at clojure.lang.RestFn.invoke(RestFn.java:619)
    at shadow.build.resolve$eval27340$loading__6737__auto____27341.invoke(resolve.clj:1)
    at shadow.build.resolve$eval27340.invokeStatic(resolve.clj:1)
    at shadow.build.resolve$eval27340.invoke(resolve.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7181)
    at clojure.lang.Compiler.eval(Compiler.java:7170)
    at clojure.lang.Compiler.load(Compiler.java:7640)
    at clojure.lang.RT.loadResourceScript(RT.java:381)
    at clojure.lang.RT.loadResourceScript(RT.java:372)
    at clojure.lang.RT.load(RT.java:459)
    at clojure.lang.RT.load(RT.java:424)
    at clojure.core$load$fn__6856.invoke(core.clj:6115)
    at clojure.core$load.invokeStatic(core.clj:6114)
    at clojure.core$load.doInvoke(core.clj:6098)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5897)
    at clojure.core$load_one.invoke(core.clj:5892)
    at clojure.core$load_lib$fn__6796.invoke(core.clj:5937)
    at clojure.core$load_lib.invokeStatic(core.clj:5936)
    at clojure.core$load_lib.doInvoke(core.clj:5917)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$load_libs.invokeStatic(core.clj:5974)
    at clojure.core$load_libs.doInvoke(core.clj:5958)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$require.invokeStatic(core.clj:5996)
    at clojure.core$require.doInvoke(core.clj:5996)
    at clojure.lang.RestFn.invoke(RestFn.java:2793)
    at shadow.build.api$eval27332$loading__6737__auto____27333.invoke(api.clj:1)
    at shadow.build.api$eval27332.invokeStatic(api.clj:1)
    at shadow.build.api$eval27332.invoke(api.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7181)
    at clojure.lang.Compiler.eval(Compiler.java:7170)
    at clojure.lang.Compiler.load(Compiler.java:7640)
    at clojure.lang.RT.loadResourceScript(RT.java:381)
    at clojure.lang.RT.loadResourceScript(RT.java:372)
    at clojure.lang.RT.load(RT.java:459)
    at clojure.lang.RT.load(RT.java:424)
    at clojure.core$load$fn__6856.invoke(core.clj:6115)
    at clojure.core$load.invokeStatic(core.clj:6114)
    at clojure.core$load.doInvoke(core.clj:6098)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5897)
    at clojure.core$load_one.invoke(core.clj:5892)
    at clojure.core$load_lib$fn__6796.invoke(core.clj:5937)
    at clojure.core$load_lib.invokeStatic(core.clj:5936)
    at clojure.core$load_lib.doInvoke(core.clj:5917)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$load_libs.invokeStatic(core.clj:5974)
    at clojure.core$load_libs.doInvoke(core.clj:5958)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$require.invokeStatic(core.clj:5996)
    at clojure.core$require.doInvoke(core.clj:5996)
    at clojure.lang.RestFn.invoke(RestFn.java:2793)
    at shadow.build$eval27326$loading__6737__auto____27327.invoke(build.clj:1)
    at shadow.build$eval27326.invokeStatic(build.clj:1)
    at shadow.build$eval27326.invoke(build.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7181)
    at clojure.lang.Compiler.eval(Compiler.java:7170)
    at clojure.lang.Compiler.load(Compiler.java:7640)
    at clojure.lang.RT.loadResourceScript(RT.java:381)
    at clojure.lang.RT.loadResourceScript(RT.java:372)
    at clojure.lang.RT.load(RT.java:459)
    at clojure.lang.RT.load(RT.java:424)
    at clojure.core$load$fn__6856.invoke(core.clj:6115)
    at clojure.core$load.invokeStatic(core.clj:6114)
    at clojure.core$load.doInvoke(core.clj:6098)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5897)
    at clojure.core$load_one.invoke(core.clj:5892)
    at clojure.core$load_lib$fn__6796.invoke(core.clj:5937)
    at clojure.core$load_lib.invokeStatic(core.clj:5936)
    at clojure.core$load_lib.doInvoke(core.clj:5917)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$load_libs.invokeStatic(core.clj:5974)
    at clojure.core$load_libs.doInvoke(core.clj:5958)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$require.invokeStatic(core.clj:5996)
    at clojure.core$require.doInvoke(core.clj:5996)
    at clojure.lang.RestFn.invoke(RestFn.java:3204)
    at shadow.cljs.devtools.api$eval18869$loading__6737__auto____18870.invoke(api.clj:1)
    at shadow.cljs.devtools.api$eval18869.invokeStatic(api.clj:1)
    at shadow.cljs.devtools.api$eval18869.invoke(api.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7181)
    at clojure.lang.Compiler.eval(Compiler.java:7170)
    at clojure.lang.Compiler.load(Compiler.java:7640)
    at clojure.lang.RT.loadResourceScript(RT.java:381)
    at clojure.lang.RT.loadResourceScript(RT.java:372)
    at clojure.lang.RT.load(RT.java:459)
    at clojure.lang.RT.load(RT.java:424)
    at clojure.core$load$fn__6856.invoke(core.clj:6115)
    at clojure.core$load.invokeStatic(core.clj:6114)
    at clojure.core$load.doInvoke(core.clj:6098)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5897)
    at clojure.core$load_one.invoke(core.clj:5892)
    at clojure.core$load_lib$fn__6796.invoke(core.clj:5937)
    at clojure.core$load_lib.invokeStatic(core.clj:5936)
    at clojure.core$load_lib.doInvoke(core.clj:5917)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$load_libs.invokeStatic(core.clj:5974)
    at clojure.core$load_libs.doInvoke(core.clj:5958)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$require.invokeStatic(core.clj:5996)
    at clojure.core$require.doInvoke(core.clj:5996)
    at clojure.lang.RestFn.invoke(RestFn.java:1289)
    at shadow.cljs.devtools.cli_actual$eval18129$loading__6737__auto____18130.invoke(cli_actual.clj:1)
    at shadow.cljs.devtools.cli_actual$eval18129.invokeStatic(cli_actual.clj:1)
    at shadow.cljs.devtools.cli_actual$eval18129.invoke(cli_actual.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7181)
    at clojure.lang.Compiler.eval(Compiler.java:7170)
    at clojure.lang.Compiler.load(Compiler.java:7640)
    at clojure.lang.RT.loadResourceScript(RT.java:381)
    at clojure.lang.RT.loadResourceScript(RT.java:372)
    at clojure.lang.RT.load(RT.java:459)
    at clojure.lang.RT.load(RT.java:424)
    at clojure.core$load$fn__6856.invoke(core.clj:6115)
    at clojure.core$load.invokeStatic(core.clj:6114)
    at clojure.core$load.doInvoke(core.clj:6098)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5897)
    at clojure.core$load_one.invoke(core.clj:5892)
    at clojure.core$load_lib$fn__6796.invoke(core.clj:5937)
    at clojure.core$load_lib.invokeStatic(core.clj:5936)
    at clojure.core$load_lib.doInvoke(core.clj:5917)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$load_libs.invokeStatic(core.clj:5974)
    at clojure.core$load_libs.doInvoke(core.clj:5958)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:669)
    at clojure.core$require.invokeStatic(core.clj:5996)
    at clojure.core$require.doInvoke(core.clj:5996)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:667)
    at clojure.core$serialized_require.invokeStatic(core.clj:6068)
    at clojure.core$requiring_resolve.invokeStatic(core.clj:6077)
    at clojure.core$requiring_resolve.invoke(core.clj:6071)
    at shadow.cljs.devtools.cli$_main$fn__18122.invoke(cli.clj:70)
    at shadow.cljs.devtools.cli$_main.invokeStatic(cli.clj:69)
    at shadow.cljs.devtools.cli$_main.doInvoke(cli.clj:67)
    at clojure.lang.RestFn.invoke(RestFn.java:436)
    at clojure.lang.Var.invoke(Var.java:393)
    at user$eval18077.invokeStatic(form-init627865638440298692.clj:1)
    at user$eval18077.invoke(form-init627865638440298692.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7181)
    at clojure.lang.Compiler.eval(Compiler.java:7171)
    at clojure.lang.Compiler.load(Compiler.java:7640)
    at clojure.lang.Compiler.loadFile(Compiler.java:7578)
    at clojure.main$load_script.invokeStatic(main.clj:475)
    at clojure.main$init_opt.invokeStatic(main.clj:477)
    at clojure.main$init_opt.invoke(main.clj:477)
    at clojure.main$initialize.invokeStatic(main.clj:508)
    at clojure.main$null_opt.invokeStatic(main.clj:542)
    at clojure.main$null_opt.invoke(main.clj:539)
    at clojure.main$main.invokeStatic(main.clj:664)
    at clojure.main$main.doInvoke(main.clj:616)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.lang.Var.applyTo(Var.java:705)
    at clojure.main.main(main.java:40)
Caused by: java.lang.ClassNotFoundException: com.google.javascript.jscomp.JSModule
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:69)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at clojure.lang.DynamicClassLoader.loadClass(DynamicClassLoader.java:77)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at clojure.lang.RT.classForName(RT.java:2212)
    at clojure.lang.RT.classForNameNonLoading(RT.java:2225)
    at shadow.build.closure$eval29103$loading__6737__auto____29104.invoke(closure.clj:1)
    at shadow.build.closure$eval29103.invokeStatic(closure.clj:1)
    at shadow.build.closure$eval29103.invoke(closure.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7181)
    at clojure.lang.Compiler.eval(Compiler.java:7170)
    at clojure.lang.Compiler.load(Compiler.java:7640)
    ... 216 more
Error encountered performing task 'run' with profile(s): 'base,system,user,provided,dev,dev'
Suppressed exit

If I change the version of the dependency thheller/shadow-cljs to 2.16.5 shadow-cljs appears to work:

$ emacs project.clj
$ grep shadow-clj project.clj 
                 [thheller/shadow-cljs "2.16.5" :scope "provided"]]
$ shadow-cljs watch app
shadow-cljs - config: /home/egli/src/guestbook/shadow-cljs.edn
shadow-cljs - running: lein with-profile +dev run -m shadow.cljs.devtools.cli --npm watch app
2021-11-19 14:10:38,295 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider 
2021-11-19 14:10:38,903 [main] INFO  io.undertow - starting server: Undertow - 2.2.10.Final 
2021-11-19 14:10:38,910 [main] INFO  org.xnio - XNIO version 3.8.4.Final 
2021-11-19 14:10:38,988 [main] INFO  org.jboss.threads - JBoss Threads version 3.1.0.Final 
2021-11-19 14:10:39,000 [main] DEBUG io.undertow - Configuring listener with protocol HTTP for interface 0.0.0.0 and port 9630 
shadow-cljs - server version: 2.16.5 running at http://localhost:9630
shadow-cljs - nREPL server started on port 7002
shadow-cljs - watching build :app
[:app] Configuring build.
[:app] Compiling ...
[:app] Build completed. (351 files, 350 compiled, 0 warnings, 25.58s)
yogthos commented 2 years ago

Thanks for the heads up, I just bumped shadow-cljs to 2.16.5 in the template.

egli commented 2 years ago

Thank you very much for the quick fix