Fork me on GitHub
#shadow-cljs
<
2022-06-30
>
pinkfrog03:06:16

How can I disable server mode when using watch ?

thheller05:06:49

what do you mean by that? server mode is kinda required for watch since that is was running the threads for the watch

Stijn Albert13:06:22

Getting this error after upgrading shadow to 2.19.3

shadow-cljs - starting via "clojure"
Missing required argument for "-M ALIASES"
Any ideas on how to fix this?

Stijn Albert13:06:06

This happens when I try to create a release build

thheller13:06:59

what command did you run? this is an error message from the clojure tool

Stijn Albert13:06:57

shadow-cljs release app

thheller13:06:19

is giving npx shadow-cljs release app the same error?

thheller14:06:18

which clojure cli tool version do you have?

thheller14:06:18

I mean it should be running clojure -M -m shadow.cljs.devtools.cli release app

thheller14:06:35

if you have aliases enabled that would be clojure -A:alias -M -m shadow.cljs.devtools.cli release app

thheller14:06:18

just try running those and see if you get the same error?

Stijn Albert14:06:35

I'll try those :thumbsup:

thheller14:06:25

likely just need to update the clojure tools

Stijn Albert08:07:20

clojure version is 1.10.1

Stijn Albert08:07:40

I'm getting the same error when I run clojure -M -m shadow.cljs.devtools.cli release app

Stijn Albert08:07:49

@U05224H0W which clojure version do I need?

Stijn Albert09:07:30

I updated to 1.11.1, but now I'm getting this gnarly error:

RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
java.util.Optional.isEmpty()Z
  Node(SUPER): goog/iter/es6.js:147:4
    super();
  Parent(CALL): goog/iter/es6.js:147:4
    super();
	com.google.javascript.jscomp.Compiler.throwInternalError (Compiler.java:2884)
	com.google.javascript.jscomp.NodeTraversal.throwUnexpectedException (NodeTraversal.java:445)
	com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:465)
	com.google.javascript.jscomp.NodeTraversal.access$200 (NodeTraversal.java:39)
	com.google.javascript.jscomp.NodeTraversal$Builder.traverse (NodeTraversal.java:401)
	com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:471)
	com.google.javascript.jscomp.StaticSuperPropReplacer.replaceAll (StaticSuperPropReplacer.java:63)
	com.google.javascript.jscomp.InlineAndCollapseProperties$AggressiveInlineAliases.process (InlineAndCollapseProperties.java:268)
	com.google.javascript.jscomp.InlineAndCollapseProperties.performAggressiveInliningAndCollapsing (InlineAndCollapseProperties.java:229)
	com.google.javascript.jscomp.InlineAndCollapseProperties.process (InlineAndCollapseProperties.java:203)
	com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process (PhaseOptimizer.java:240)
	com.google.javascript.jscomp.PhaseOptimizer.process (PhaseOptimizer.java:179)
	com.google.javascript.jscomp.Compiler.performTranspilationAndOptimizations (Compiler.java:2574)
	com.google.javascript.jscomp.Compiler.lambda$stage2Passes$5 (Compiler.java:933)
	com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread (CompilerExecutor.java:127)
	com.google.javascript.jscomp.Compiler.runInCompilerThread (Compiler.java:981)
	com.google.javascript.jscomp.Compiler.stage2Passes (Compiler.java:930)
	com.google.javascript.jscomp.Compiler.compileModules (Compiler.java:872)
	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/compile-js-modules (closure.clj:1112)
	shadow.build.closure/compile-js-modules (closure.clj:1098)
	shadow.build.closure/optimize/fn--13728 (closure.clj:1307)
	shadow.build.closure/optimize (closure.clj:1293)
	shadow.build.closure/optimize (closure.clj:1284)
	shadow.build.api/optimize (api.clj:273)
	shadow.build.api/optimize (api.clj:267)
	shadow.build/optimize (build.clj:525)
	shadow.build/optimize (build.clj:517)
	shadow.cljs.devtools.api/release* (api.clj:339)
	shadow.cljs.devtools.api/release* (api.clj:324)
	shadow.cljs.devtools.cli-actual/do-build-command (cli_actual.clj:28)
	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--18450--auto----19158 (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:
NoSuchMethodError: java.util.Optional.isEmpty()Z
	com.google.javascript.jscomp.StaticSuperPropReplacer.tryReplaceSuper (StaticSuperPropReplacer.java:102)
	com.google.javascript.jscomp.StaticSuperPropReplacer.visit (StaticSuperPropReplacer.java:92)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:859)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:850)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:850)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:850)
	com.google.javascript.jscomp.NodeTraversal.traverseFunction (NodeTraversal.java:898)
	com.google.javascript.jscomp.NodeTraversal.handleFunction (NodeTraversal.java:763)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:806)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:850)
	com.google.javascript.jscomp.NodeTraversal.handleClassMembers (NodeTraversal.java:973)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:815)
	com.google.javascript.jscomp.NodeTraversal.handleClass (NodeTraversal.java:948)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:812)
	com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:987)
	com.google.javascript.jscomp.NodeTraversal.handleScript (NodeTraversal.java:751)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:803)
	com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:850)
	com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:462)
	com.google.javascript.jscomp.NodeTraversal.access$200 (NodeTraversal.java:39)
	com.google.javascript.jscomp.NodeTraversal$Builder.traverse (NodeTraversal.java:401)
	com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:471)
	com.google.javascript.jscomp.StaticSuperPropReplacer.replaceAll (StaticSuperPropReplacer.java:63)
	com.google.javascript.jscomp.InlineAndCollapseProperties$AggressiveInlineAliases.process (InlineAndCollapseProperties.java:268)
	com.google.javascript.jscomp.InlineAndCollapseProperties.performAggressiveInliningAndCollapsing (InlineAndCollapseProperties.java:229)
	com.google.javascript.jscomp.InlineAndCollapseProperties.process (InlineAndCollapseProperties.java:203)
	com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process (PhaseOptimizer.java:240)
	com.google.javascript.jscomp.PhaseOptimizer.process (PhaseOptimizer.java:179)
	com.google.javascript.jscomp.Compiler.performTranspilationAndOptimizations (Compiler.java:2574)
	com.google.javascript.jscomp.Compiler.lambda$stage2Passes$5 (Compiler.java:933)
	com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread (CompilerExecutor.java:127)
	com.google.javascript.jscomp.Compiler.runInCompilerThread (Compiler.java:981)
	com.google.javascript.jscomp.Compiler.stage2Passes (Compiler.java:930)
	com.google.javascript.jscomp.Compiler.compileModules (Compiler.java:872)
	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/compile-js-modules (closure.clj:1112)
	shadow.build.closure/compile-js-modules (closure.clj:1098)
	shadow.build.closure/optimize/fn--13728 (closure.clj:1307)
	shadow.build.closure/optimize (closure.clj:1293)
	shadow.build.closure/optimize (closure.clj:1284)
	shadow.build.api/optimize (api.clj:273)
	shadow.build.api/optimize (api.clj:267)
	shadow.build/optimize (build.clj:525)
	shadow.build/optimize (build.clj:517)
	shadow.cljs.devtools.api/release* (api.clj:339)
	shadow.cljs.devtools.api/release* (api.clj:324)
	shadow.cljs.devtools.cli-actual/do-build-command (cli_actual.clj:28)
	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--18450--auto----19158 (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)

thheller19:07:30

which java version do you use? seems like its maybe too old? should be java11+

Stijn Albert09:07:44

Tried with Java 8 and Java 17, and both yield the same error. šŸ˜ž

Stijn Albert13:07:22

Upgraded from java 8 to 11, works again now! Thanks a lot @U05224H0W

Ted Ciafardini14:06:44

After running npx shadow-cljs watch app after the build completes, I open my browser and see the following in terminal:

2022-06-30 10:46:46,627 [XNIO-1 I/O-3] DEBUG io.undertow.websockets.core.request - Attempting websocket handshake with io.undertow.websockets.core.protocol.version13.Hybi13Handshake@73793df2 on HttpServerExchange{ GET /api/remote-relay}
2022-06-30 10:46:46,640 [XNIO-1 I/O-3] DEBUG io.undertow.request - Upgrading request HttpServerExchange{ GET /api/remote-relay}
2022-06-30 10:46:46,651 [XNIO-1 I/O-3] DEBUG i.undertow.websockets.core.extension - Negotiated extension WebSocketExtension{name='permessage-deflate', parameters=[]} for handshake WebSocketExtension{name='permessage-deflate', parameters=[{'client_max_window_bits': 'null'}]}
and then this message on repeat until it times out:
2022-06-30 10:47:11,865 [XNIO-1 I/O-3] DEBUG io.undertow.websockets.core.request - UT025003: Decoding WebSocket Frame with opCode 1
Any clues? Iā€™ve triple checked my configuration and Iā€™m stuck šŸ˜¬ thanks for reading

thheller15:06:45

@edward.ciafardini thats just debug logs? you need to adjust your logging config to not show these unless you are actually trying to debug undertow?

Ted Ciafardini15:06:17

The instructions I was working through said I would see a ā€œWeb Socket connected!ā€ message but I didnā€™tā€¦. So I thought something was wrong Connecting to the Shadow Cljs build with a REPL is working and sending js/alerts, so I guess nothing is wrong. False alarm, thanks

thheller15:06:45

there is no web socket connected message anymore. that is rather old news. now just says shadow: #<some-number> ready!

Ted Ciafardini15:06:25

Cool - I am reading ā€œWeb Development In Clojure 3rd Editionā€, and some things have been slightly inaccurate (the nature of things). Thanks for the quick response