I’ve been spending the past few hours trying to debug where this is coming from:
Uncaught TypeError: Cannot read property 'unstable_cancelCallback' of undefined
As far as I can tell it’s to do with react
and react-dom
versions, being incompatible, even though they’re currently exactly the same.
This seems rather fiddly and exceedingly fragile. I’m also a little worried that the difficultly of this process is making me even more unwilling to update libs when it should be the other way around?
I’ll try and see if I can pick this up tomorrow…[Figwheel] Failed to compile build prod in 0.025 seconds.
[Figwheel:WARNING] Compile Exception: contains? not supported on type: java.lang.Boolean
[Figwheel:SEVERE] contains? not supported on type: java.lang.Boolean
Execution error (IllegalArgumentException) at cljs.closure/compute-upstream-npm-deps$fn (closure.clj:2440).
contains? not supported on type: java.lang.Boolean
I get this when trying to build with :target :bundle ?Yes, update clojurescript to 1.10.773 should help =)…
@didibus ^
Hm, I’m using 0.2.7 and building with auto-test, seems auto-test is overwriting the regular main.js
:
[Figwheel] Successfully compiled build basedev to "resources/public/js/main.out/index.js" in 42.267 seconds.
[Figwheel] Bundling: npx webpack --mode=development resources/public/js/main.out/index.js -o resources/public/js/main.js
[Figwheel] Outputting main file: resources/public/js/main.out/index-auto-testing.js
[Figwheel] Bundling: npx webpack --mode=development resources/public/js/main.out/index-auto-testing.js -o resources/public/js/main.js
[Figwheel] Watching paths: ("src/clojure" "test/clojure") to compile build - basedev
@ingesol what are your compiler options?
{:main my.main
:output-to "resources/public/js/main.out/index.js"
:auto-testing true
:output-dir "resources/public/js/main.out",
:asset-path "/js/main.out"
:closure-defines {"re_frame.trace.trace_enabled_QMARK_" true}
:preloads [my.preloads]}
figwheel-main.edn
{:auto-testing true
:watch-dirs ["src/clojure" "test/clojure"],
:css-dirs ["resources/public/css"],
:open-url "false"
:helpful-classpaths false
:auto-bundle :webpack
:final-output-to "resources/public/js/main.js"}
well that’s a bug then
could it be the specification of :final-output-to?
no it’s a bug I must have introduced recently
final-output-to is supposed to be munged
I THINK I tested this with both auto-test and in main somewhere on 0.2.7-SNAPSHOT
I refactored
so
probably missed something
Well, logging is really to the point so was easy to spot what’s wrong with the output
yep I found the bug
thanks
1👍Let me know if you want me to retest snapshot
yes you probably have more exclusions to do
clojure -Stree will tell you if you are pulling in react or react-dom
also added some infor to cljs-ajax here https://github.com/JulianBirch/cljs-ajax/issues/247
@ingesol 0.2.8-SNAPSHOT
confirmed 🙂
both main app and auto-test page works onw
great 👍
but until this https://clojure.atlassian.net/browse/CLJS-3258 is fixed its going to be hard to have cljsjs libs in :bundle
Also I want to point out a CLJS issue to keep an eye on
I use deps.edn
in new projects, but the code I’m currently in is an old one so it’s all lein based, I’m trying to work out if there’s a lein equivalent to clj -m cljs.main --install-deps --open-url false
as calling that without a deps.edn
just crashes…
Although thinking about it perhaps it’s best to establish that this works before porting everything…
you can call lein run -m figwheel.main -- --install-deps
1😍Ok, for the first time it has worked!
1🎉Now to see how reproducible it is…
WOW!
1😄I’ve made some notes as I went, so far it’s looking good, do you want them? If not I’ll probably put together a quick blog post…
That was 5 days by my count :P…
Ok, perhaps spoke too soon, looks like it doesn’t like optimisations advanced…
Fixed that, let’s see if it works =)…
Done! Looks a bit more complicated than before, but manageable I think, and hopefully when that bug gets fixed it will become simpler again =)…
1👍That's the version I am using
Along with fighweel "0.2.7"
Seems to be caused by me having :install-deps true
in my config
:clojure.main/message
"Execution error (IllegalArgumentException) at cljs.closure/compute-upstream-npm-deps$fn (closure.clj:2440).\ncontains? not supported on type: java.lang.Boolean\n",
:clojure.main/triage
{:clojure.error/class java.lang.IllegalArgumentException,
:clojure.error/line 2440,
:clojure.error/cause
"contains? not supported on type: java.lang.Boolean",
:clojure.error/symbol cljs.closure/compute-upstream-npm-deps$fn,
:clojure.error/source "closure.clj",
:clojure.error/phase :execution}
Check your deps tree? you might be running a different version than you think you are… (I’ve done this..)
With deps.edn
it’s clj -Stree
and with lein
it’s lein deps :tree
Hum, checked -Stree, still shows org.clojure/clojurescript 1.10.773
@didibus it really shouldn’t be happening with that version
Hum, something else that happens is that it doesn't se to apply the bundle-cmd after the build
I have to manually run it
Thanks for hanging in there
No problem =)…
Thanks for all the help ^_^…