Fork me on GitHub
#shadow-cljs
<
2022-03-07
>
thheller06:03:35

sorry, don't know how you do this exactly. should be something using :target :bundle but how you mock away cljsjs deps I don't know

thheller06:03:47

if you are actually using (:require ["@firebase/app"]) directly in your code and not the cljsjs/firebase namespaces then you don't need any of this :foreign-libs stuff

jaime08:03:39

Sorry, I did not provide more context. You're right I'm using :target :bundle and using (:require ["@firebase/app" :as firebase]) seems to work, instead of using js/firebase. Foreign-libs is not need. Thanks

Stefan08:03:07

Good morning all! This morning I updated shadow-cljs to 2.17.7 and then I got this build error:

$ npx shadow-cljs -A:app release :app
[:app] Compiling ...
relative require ./getComputedStyle from /Users/redacted/my-project/node_modules/dom-helpers/cjs/css.js outside package /Users/redacted/my-project/node_modules/dom-helpers/css
{:package-dir #object[java.io.File 0x7ce3710f "/Users/redacted/my-project/node_modules/dom-helpers/css"], :file #object[java.io.File 0x20ce9d1c "/Users/redacted/my-project/node_modules/dom-helpers/cjs/css.js"], :require "./getComputedStyle"}
ExceptionInfo: relative require ./getComputedStyle from /Users/redacted/my-project/node_modules/dom-helpers/cjs/css.js outside package /Users/redacted/my-project/node_modules/dom-helpers/css
	shadow.build.npm/resolve-rel-require (npm.clj:579)
	shadow.build.npm/resolve-rel-require (npm.clj:570)
	shadow.build.npm/find-resource (npm.clj:783)
	shadow.build.npm/find-resource (npm.clj:751)
	shadow.build.resolve/find-npm-resource (resolve.clj:122)
	shadow.build.resolve/find-npm-resource (resolve.clj:93)
	shadow.build.resolve/eval13299/fn--13302 (resolve.clj:262)
	clojure.lang.MultiFn.invoke (MultiFn.java:244)
	shadow.build.resolve/find-resource-for-string (resolve.clj:80)
	shadow.build.resolve/find-resource-for-string (resolve.clj:69)
	shadow.build.resolve/resolve-string-require (resolve.clj:453)
	shadow.build.resolve/resolve-string-require (resolve.clj:436)
	shadow.build.resolve/resolve-require (resolve.clj:673)
	shadow.build.resolve/resolve-require (resolve.clj:666)
	shadow.build.resolve/resolve-deps/fn--13248 (resolve.clj:51)
	clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
	clojure.core/reduce (core.clj:6829)
	clojure.core/reduce (core.clj:6812)
	shadow.cljs.util/reduce-> (util.clj:45)
	shadow.cljs.util/reduce-> (util.clj:44)
	shadow.build.resolve/resolve-deps (resolve.clj:49)
	shadow.build.resolve/resolve-deps (resolve.clj:33)
	shadow.build.resolve/resolve-string-require (resolve.clj:478)
	shadow.build.resolve/resolve-string-require (resolve.clj:436)
	shadow.build.resolve/resolve-require (resolve.clj:673)
	shadow.build.resolve/resolve-require (resolve.clj:666)
	shadow.build.resolve/resolve-deps/fn--13248 (resolve.clj:51)
	clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
	clojure.core/reduce (core.clj:6829)
	clojure.core/reduce (core.clj:6812)
	shadow.cljs.util/reduce-> (util.clj:45)
	shadow.cljs.util/reduce-> (util.clj:44)
	shadow.build.resolve/resolve-deps (resolve.clj:49)
	shadow.build.resolve/resolve-deps (resolve.clj:33)
	shadow.build.resolve/resolve-string-require (resolve.clj:478)
	shadow.build.resolve/resolve-string-require (resolve.clj:436)
	shadow.build.resolve/resolve-require (resolve.clj:673)
	shadow.build.resolve/resolve-require (resolve.clj:666)
	shadow.build.resolve/resolve-deps/fn--13248 (resolve.clj:51)
	clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
	clojure.core/reduce (core.clj:6829)
	clojure.core/reduce (core.clj:6812)
	shadow.cljs.util/reduce-> (util.clj:45)
	shadow.cljs.util/reduce-> (util.clj:44)
	shadow.build.resolve/resolve-deps (resolve.clj:49)
	shadow.build.resolve/resolve-deps (resolve.clj:33)
	shadow.build.resolve/resolve-string-require (resolve.clj:478)
	shadow.build.resolve/resolve-string-require (resolve.clj:436)
	shadow.build.resolve/resolve-require (resolve.clj:673)
	shadow.build.resolve/resolve-require (resolve.clj:666)
	shadow.build.resolve/resolve-deps/fn--13248 (resolve.clj:51)
	clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
	clojure.core/reduce (core.clj:6829)
	clojure.core/reduce (core.clj:6812)
	shadow.cljs.util/reduce-> (util.clj:45)
	shadow.cljs.util/reduce-> (util.clj:44)
	shadow.build.resolve/resolve-deps (resolve.clj:49)
	shadow.build.resolve/resolve-deps (resolve.clj:33)
	shadow.build.resolve/resolve-string-require (resolve.clj:478)
	shadow.build.resolve/resolve-string-require (resolve.clj:436)
	shadow.build.resolve/resolve-require (resolve.clj:673)
	shadow.build.resolve/resolve-require (resolve.clj:666)
	shadow.build.resolve/resolve-deps/fn--13248 (resolve.clj:51)
	clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
	clojure.core/reduce (core.clj:6829)
	clojure.core/reduce (core.clj:6812)
	shadow.cljs.util/reduce-> (util.clj:45)
	shadow.cljs.util/reduce-> (util.clj:44)
	shadow.build.resolve/resolve-deps (resolve.clj:49)
	shadow.build.resolve/resolve-deps (resolve.clj:33)
	shadow.build.resolve/resolve-string-require (resolve.clj:478)
	shadow.build.resolve/resolve-string-require (resolve.clj:436)
	shadow.build.resolve/resolve-require (resolve.clj:673)
	shadow.build.resolve/resolve-require (resolve.clj:666)
	shadow.build.resolve/resolve-deps/fn--13248 (resolve.clj:51)
	clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
	clojure.core/reduce (core.clj:6829)
	clojure.core/reduce (core.clj:6812)
	shadow.cljs.util/reduce-> (util.clj:45)
	shadow.cljs.util/reduce-> (util.clj:44)
Does this ring any bells? I downgraded shadow-cljs for now and that’s working, so it’s not urgent :)

thheller08:03:01

looks like a regression of some kind. I'll check

🙏 1
thheller09:03:10

should be fixed in 2.17.8

Stefan09:03:21

Yes it is 🎉

Stefan09:03:33

Thank you!!

mhuebert15:03:52

question about overriding the devtools host - we are using a custom domain instead of localhost, but if we use :devtools-url we have to hard-code the port which breaks when the default port (9630) is unavailable. The workaround I found is to add

;; toplevel
:devtools {:use-document-host false}
;; in the build
:closure-defines {shadow.cljs.devtools.client.env.server_host ""}
…which works, but feels like a hack b/c if I put the closure-define as a normal var rather than “munged” (`shadow.cljs.devtools.client.env/server-host`) then it gets overridden somewhere.

thheller17:03:21

@mhuebert I assume the host isn't the host serving the initial page? there currently is no option to just override the host. although you can configure :http {:host "whatever"} and that will be used