This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-04-12
Channels
- # announcements (76)
- # babashka (10)
- # beginners (39)
- # biff (2)
- # calva (51)
- # chlorine-clover (8)
- # cider (6)
- # clj-kondo (15)
- # clj-on-windows (13)
- # cljdoc (26)
- # cljs-dev (8)
- # clojure (196)
- # clojure-austin (17)
- # clojure-europe (36)
- # clojure-nl (4)
- # clojure-spec (8)
- # clojure-uk (2)
- # clojurescript (18)
- # community-development (4)
- # conjure (1)
- # core-typed (38)
- # cursive (5)
- # datalevin (17)
- # datomic (25)
- # docker (1)
- # events (2)
- # interop (2)
- # jobs (4)
- # kaocha (28)
- # lsp (22)
- # nyc (1)
- # off-topic (10)
- # pedestal (1)
- # portal (22)
- # re-frame (22)
- # react (10)
- # shadow-cljs (19)
- # spacemacs (7)
- # tools-deps (11)
- # vim (14)
- # xtdb (7)
Since we finally dropped support for IE11, I updated our shadow-cljs output from :es5
to :es2018
-- I saw a very small change in the bundle size, I'm not sure why but I was expecting a bit more. Like, in our base bundle, we went from 279kb to 276kb gzip. Perhaps a total of another 5kb gzip across everything else. Not complaining, just curious if this is to be expected.
that entirely depends on how many polyfills you previously relied on. CLJS itself doesn't need any so nothing to save there. only affects npm packages basically and those can vary greatly
Yeah, of course we have removed our entire 50kb worth of polyfills, that was outside the CLJS bundle. I guess I thought that the output would use newer syntax which would be more compact.
It's annoying that many npm modules do their own polyfills (it's visible even in the advanced optimisations).
hey thheller 👋
I'm getting an error when I try to update shadow-cljs dependency in my project to v2.18.0
and to v2.17.0
and also to v2.16.0
in my project
v2.15.0
seems to work ok.
the error message is a bit verbose but I'll just paste it here
ExceptionInfo: failed to convert sources
shadow.build.closure/convert-sources-simple*/fn--11356 (closure.clj:1953)
shadow.build.closure/convert-sources-simple* (closure.clj:1940)
shadow.build.closure/convert-sources-simple* (closure.clj:1818)
shadow.build.closure/convert-sources-simple (closure.clj:2112)
shadow.build.closure/convert-sources-simple (closure.clj:2064)
shadow.build.compiler/maybe-closure-convert (compiler.clj:1218)
shadow.build.compiler/maybe-closure-convert (compiler.clj:1211)
shadow.build.compiler/compile-all (compiler.clj:1463)
shadow.build.compiler/compile-all (compiler.clj:1330)
shadow.build.api/compile-sources (api.clj:261)
shadow.build.api/compile-sources (api.clj:253)
shadow.build/compile (build.clj:463)
shadow.build/compile (build.clj:453)
shadow.cljs.devtools.api/compile* (api.clj:296)
shadow.cljs.devtools.api/compile* (api.clj:292)
shadow.cljs.devtools.cli-actual/do-build-command (cli_actual.clj:34)
shadow.cljs.devtools.cli-actual/do-build-command (cli_actual.clj:25)
shadow.cljs.devtools.cli-actual/do-build-commands (cli_actual.clj:49)
shadow.cljs.devtools.cli-actual/do-build-commands (cli_actual.clj:38)
shadow.cljs.devtools.cli-actual/main/body-fn--15294--auto----15967 (cli_actual.clj:166)
shadow.cljs.devtools.cli-actual/main (cli_actual.clj:165)
shadow.cljs.devtools.cli-actual/main (cli_actual.clj:132)
clojure.core/apply (core.clj:671)
clojure.core/apply (core.clj:662)
shadow.cljs.devtools.cli-actual/-main (cli_actual.clj:219)
shadow.cljs.devtools.cli-actual/-main (cli_actual.clj:217)
clojure.lang.Var.applyTo (Var.java:705)
clojure.core/apply (core.clj:667)
clojure.core/apply (core.clj:662)
shadow.cljs.devtools.cli/-main (cli.clj:75)
shadow.cljs.devtools.cli/-main (cli.clj:67)
clojure.lang.Var.applyTo (Var.java:705)
clojure.core/apply (core.clj:667)
clojure.main/main-opt (main.clj:514)
clojure.main/main-opt (main.clj:510)
clojure.main/main (main.clj:664)
clojure.main/main (main.clj:616)
clojure.lang.Var.applyTo (Var.java:705)
clojure.main.main (main.java:40)
Caused by:
RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
Unexpected variable layoutCssVars
Node(NAME layoutCssVars): node_modules/react-data-grid/lib/bundle.js:652:4
layoutCssVars,
Parent(STRING_KEY layoutCssVars): node_modules/react-data-grid/lib/bundle.js:652:4
layoutCssVars,
com.google.javascript.jscomp.Compiler.throwInternalError (Compiler.java:2907)
com.google.javascript.jscomp.NodeTraversal.throwUnexpectedException (NodeTraversal.java:442)
com.google.javascript.jscomp.NodeTraversal.traverseRoots (NodeTraversal.java:486)
com.google.javascript.jscomp.NodeTraversal.access$400 (NodeTraversal.java:38)
com.google.javascript.jscomp.NodeTraversal$Builder.traverseRoots (NodeTraversal.java:406)
com.google.javascript.jscomp.VarCheck.process (VarCheck.java:154)
com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process (PhaseOptimizer.java:317)
com.google.javascript.jscomp.PhaseOptimizer.process (PhaseOptimizer.java:232)
com.google.javascript.jscomp.Compiler.performTranspilationAndOptimizations (Compiler.java:2592)
com.google.javascript.jscomp.Compiler.lambda$stage2Passes$8 (Compiler.java:966)
com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread (CompilerExecutor.java:127)
com.google.javascript.jscomp.Compiler.runInCompilerThread (Compiler.java:1014)
com.google.javascript.jscomp.Compiler.stage2Passes (Compiler.java:963)
com.google.javascript.jscomp.Compiler.compile (Compiler.java:846)
sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke (Method.java:498)
clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:167)
clojure.lang.Reflector.invokeInstanceMethod (Reflector.java:102)
shadow.build.closure/convert-sources-simple*/fn--11356/fn--11357 (closure.clj:1943)
shadow.build.closure/convert-sources-simple*/fn--11356 (closure.clj:1941)
shadow.build.closure/convert-sources-simple* (closure.clj:1940)
shadow.build.closure/convert-sources-simple* (closure.clj:1818)
shadow.build.closure/convert-sources-simple (closure.clj:2112)
shadow.build.closure/convert-sources-simple (closure.clj:2064)
shadow.build.compiler/maybe-closure-convert (compiler.clj:1218)
shadow.build.compiler/maybe-closure-convert (compiler.clj:1211)
shadow.build.compiler/compile-all (compiler.clj:1463)
shadow.build.compiler/compile-all (compiler.clj:1330)
shadow.build.api/compile-sources (api.clj:261)
shadow.build.api/compile-sources (api.clj:253)
shadow.build/compile (build.clj:463)
shadow.build/compile (build.clj:453)
shadow.cljs.devtools.api/compile* (api.clj:296)
shadow.cljs.devtools.api/compile* (api.clj:292)
shadow.cljs.devtools.cli-actual/do-build-command (cli_actual.clj:34)
shadow.cljs.devtools.cli-actual/do-build-command (cli_actual.clj:25)
shadow.cljs.devtools.cli-actual/do-build-commands (cli_actual.clj:49)
shadow.cljs.devtools.cli-actual/do-build-commands (cli_actual.clj:38)
shadow.cljs.devtools.cli-actual/main/body-fn--15294--auto----15967 (cli_actual.clj:166)
shadow.cljs.devtools.cli-actual/main (cli_actual.clj:165)
shadow.cljs.devtools.cli-actual/main (cli_actual.clj:132)
clojure.core/apply (core.clj:671)
clojure.core/apply (core.clj:662)
shadow.cljs.devtools.cli-actual/-main (cli_actual.clj:219)
shadow.cljs.devtools.cli-actual/-main (cli_actual.clj:217)
clojure.lang.Var.applyTo (Var.java:705)
clojure.core/apply (core.clj:667)
clojure.core/apply (core.clj:662)
shadow.cljs.devtools.cli/-main (cli.clj:75)
shadow.cljs.devtools.cli/-main (cli.clj:67)
clojure.lang.Var.applyTo (Var.java:705)
clojure.core/apply (core.clj:667)
clojure.main/main-opt (main.clj:514)
clojure.main/main-opt (main.clj:510)
clojure.main/main (main.clj:664)
clojure.main/main (main.clj:616)
clojure.lang.Var.applyTo (Var.java:705)
clojure.main.main (main.java:40)
Caused by:
IllegalStateException: Unexpected variable layoutCssVars
com.google.javascript.jscomp.VarCheck.handleUndeclaredVariableRef (VarCheck.java:291)
com.google.javascript.jscomp.VarCheck.checkName (VarCheck.java:213)
com.google.javascript.jscomp.VarCheck.visit (VarCheck.java:173)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:856)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseFunction (NodeTraversal.java:895)
com.google.javascript.jscomp.NodeTraversal.handleFunction (NodeTraversal.java:760)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:803)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseFunction (NodeTraversal.java:895)
com.google.javascript.jscomp.NodeTraversal.handleFunction (NodeTraversal.java:760)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:803)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:984)
com.google.javascript.jscomp.NodeTraversal.handleScript (NodeTraversal.java:748)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:800)
com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:847)
com.google.javascript.jscomp.NodeTraversal.traverseRoots (NodeTraversal.java:482)
com.google.javascript.jscomp.NodeTraversal.access$400 (NodeTraversal.java:38)
com.google.javascript.jscomp.NodeTraversal$Builder.traverseRoots (NodeTraversal.java:406)
com.google.javascript.jscomp.VarCheck.process (VarCheck.java:154)
com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process (PhaseOptimizer.java:317)
com.google.javascript.jscomp.PhaseOptimizer.process (PhaseOptimizer.java:232)
com.google.javascript.jscomp.Compiler.performTranspilationAndOptimizations (Compiler.java:2592)
com.google.javascript.jscomp.Compiler.lambda$stage2Passes$8 (Compiler.java:966)
com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread (CompilerExecutor.java:127)
com.google.javascript.jscomp.Compiler.runInCompilerThread (Compiler.java:1014)
com.google.javascript.jscomp.Compiler.stage2Passes (Compiler.java:963)
com.google.javascript.jscomp.Compiler.compile (Compiler.java:846)
sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke (Method.java:498)
clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:167)
clojure.lang.Reflector.invokeInstanceMethod (Reflector.java:102)
shadow.build.closure/convert-sources-simple*/fn--11356/fn--11357 (closure.clj:1943)
shadow.build.closure/convert-sources-simple*/fn--11356 (closure.clj:1941)
shadow.build.closure/convert-sources-simple* (closure.clj:1940)
shadow.build.closure/convert-sources-simple* (closure.clj:1818)
shadow.build.closure/convert-sources-simple (closure.clj:2112)
shadow.build.closure/convert-sources-simple (closure.clj:2064)
shadow.build.compiler/maybe-closure-convert (compiler.clj:1218)
shadow.build.compiler/maybe-closure-convert (compiler.clj:1211)
shadow.build.compiler/compile-all (compiler.clj:1463)
shadow.build.compiler/compile-all (compiler.clj:1330)
shadow.build.api/compile-sources (api.clj:261)
shadow.build.api/compile-sources (api.clj:253)
shadow.build/compile (build.clj:463)
shadow.build/compile (build.clj:453)
shadow.cljs.devtools.api/compile* (api.clj:296)
shadow.cljs.devtools.api/compile* (api.clj:292)
shadow.cljs.devtools.cli-actual/do-build-command (cli_actual.clj:34)
shadow.cljs.devtools.cli-actual/do-build-command (cli_actual.clj:25)
shadow.cljs.devtools.cli-actual/do-build-commands (cli_actual.clj:49)
shadow.cljs.devtools.cli-actual/do-build-commands (cli_actual.clj:38)
shadow.cljs.devtools.cli-actual/main/body-fn--15294--auto----15967 (cli_actual.clj:166)
shadow.cljs.devtools.cli-actual/main (cli_actual.clj:165)
shadow.cljs.devtools.cli-actual/main (cli_actual.clj:132)
clojure.core/apply (core.clj:671)
clojure.core/apply (core.clj:662)
shadow.cljs.devtools.cli-actual/-main (cli_actual.clj:219)
shadow.cljs.devtools.cli-actual/-main (cli_actual.clj:217)
clojure.lang.Var.applyTo (Var.java:705)
clojure.core/apply (core.clj:667)
clojure.core/apply (core.clj:662)
shadow.cljs.devtools.cli/-main (cli.clj:75)
shadow.cljs.devtools.cli/-main (cli.clj:67)
clojure.lang.Var.applyTo (Var.java:705)
clojure.core/apply (core.clj:667)
clojure.main/main-opt (main.clj:514)
clojure.main/main-opt (main.clj:510)
clojure.main/main (main.clj:664)
clojure.main/main (main.clj:616)
clojure.lang.Var.applyTo (Var.java:705)
clojure.main.main (main.java:40)
error Command failed with exit code 1.
info Visit for documentation about this command.
error Command failed with exit code 1.
info Visit for documentation about this command.
I can share the contents of node_modules/react-data-grid/lib/bundle.js
too if that's needed
Probably a dumb question -- is there a way to recover after I type something syntactically invalid in a shadow-cljs REPL?
> (324234 ]
Failed to read: clojure.lang.ExceptionInfo: dummy.cljs [line 1, col 11] Unmatched delimiter ]. {:type :reader-exception, :ex-kind :reader-error, :file "dummy.cljs", :line 1, :col 11}
Whenever I mistype something, the REPL becomes unresponsive and I have to quit and restart it to continue.@leiferiksonventures looks like a bug. if you want you can open a github issue for this. can't promise I'll get to it before forgetting about it otherwise 😛
@thheller Are you aware of any reason the approach you used here: https://code.thheller.com/blog/shadow-cljs/2019/03/03/code-splitting-clojurescript.html would no longer work? I'm trying to figure out why lazy loading is not working for me.