This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-12-02
Channels
- # adventofcode (63)
- # announcements (21)
- # babashka-sci-dev (1)
- # beginners (24)
- # biff (2)
- # calva (78)
- # cherry (6)
- # clj-commons (3)
- # clj-kondo (7)
- # clojure (91)
- # clojure-austin (2)
- # clojure-bay-area (6)
- # clojure-denmark (1)
- # clojure-europe (45)
- # clojure-nl (1)
- # clojure-norway (16)
- # clojure-portugal (3)
- # clojure-uk (1)
- # clojurescript (20)
- # conjure (11)
- # datalevin (13)
- # datomic (5)
- # emacs (14)
- # etaoin (15)
- # events (7)
- # fulcro (9)
- # funcool (1)
- # honeysql (26)
- # joyride (4)
- # kaocha (3)
- # lambdaisland (2)
- # malli (7)
- # off-topic (22)
- # pathom (29)
- # portal (58)
- # practicalli (8)
- # rdf (25)
- # reagent (14)
- # sci (3)
- # scittle (37)
- # shadow-cljs (10)
- # slack-help (2)
- # spacemacs (7)
- # sql (7)
- # tools-deps (1)
- # xtdb (2)
Hi everyone. I'm trying to load a shadow build code module (code splitting) at run time into the browser and when I do the shadow.loader/load
I get shadow.loader API was called before shadow.loader.init! You are probably calling module loader too early before shadow-cljs got fully initialized.
:builds
{:main
{:target :browser
:output-dir "resources/public/cljs-out"
:asset-path "/app"
:build-hooks
[(shadow.cljs.build-report/hook
{:output-to "builds/report.html"})]
:modules
{:base {:entries []}
:main {:entries [myproject.web-app.main]
:depends-on #{:base}}
:pdf-viewer {:entries [myproject.web-app.pdf-viewer]
:depends-on #{:base}}}
}}}
:main
is all loaded, and then when I do any load, for example (shadow.loader/with-module "pdf-viewer" #(js/alert "LOADED"))
I get the:
shadow.loader API was called before shadow.loader.init!
You are probably calling module loader too early before shadow-cljs got fully initialized.
digging in, I notice here: https://github.com/thheller/shadow-cljs/blob/7fefe5b3f604ff11d33539e4899e160dd1ff6eb0/src/main/shadow/loader.js#L42 that init is only done if goog.global.shadow$modules
is defined. In my browser session it is not defined
@U1QQJJK89 if you intend to use the loader you must set :module-loader true
in the build config