This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-10-12
Channels
- # announcements (13)
- # aws (18)
- # babashka (60)
- # babashka-sci-dev (83)
- # beginners (32)
- # biff (18)
- # calva (22)
- # cider (8)
- # clj-on-windows (101)
- # clojure (59)
- # clojure-bay-area (2)
- # clojure-europe (36)
- # clojure-india (4)
- # clojure-nl (3)
- # clojure-norway (5)
- # clojure-spec (4)
- # clojure-uk (1)
- # clojurescript (5)
- # conjure (1)
- # core-async (10)
- # cursive (7)
- # data-science (5)
- # datahike (10)
- # datalog (11)
- # datomic (3)
- # docker (3)
- # figwheel-main (2)
- # gratitude (3)
- # improve-getting-started (1)
- # introduce-yourself (5)
- # jobs (3)
- # joyride (12)
- # leiningen (1)
- # lsp (67)
- # malli (27)
- # off-topic (36)
- # random (1)
- # rdf (1)
- # re-frame (17)
- # reagent (21)
- # reitit (4)
- # releases (4)
- # remote-jobs (2)
- # ring (2)
- # sci (35)
- # shadow-cljs (28)
- # sql (3)
- # squint (9)
- # tools-deps (11)
Hey all, I’m trying to make a PWA in cljs with shadow-cljs.
my shadow-cljs.clj
is :
{:nrepl {:port 7002}
:builds
{:app
{:target :browser
:output-dir "target/cljsbuild/public/js"
:asset-path "/js"
:modules {:app {:entries []}}
:devtools {:watch-dir "resources/public"
:preloads [re-frisk.preload]}
:dev {:closure-defines {"re_frame.trace.trace_enabled_QMARK_" true}}
:release {}}
:sw {:target :browser
:output-dir "resources/public/"
:asset-path "/"
:modules {:sw {:init-fn sw.core/init
:entries [sw.core]}}
:compiler-options {:optimizations :advanced}}
:test {:target :node-test, :output-to "target/test/test.js"
:autorun true}}
:lein {:profile "+dev"}}
my pwa.core/init
is:
(defn init! []
(set! (.-onload js/window)
(fn []
(when-let [service-worker (.-serviceWorker js/navigator)]
(-> service-worker
(.register "./sw.js")
(.then #(js/console.log "Service worker registered!"))))))
(start-router!)
(ajax/load-interceptors!)
(mount-components))
and my sw.core
namespace looks like :
(ns sw.core)
(.addEventListener
js/self "install"
(fn [event]
(js/console.log "Service worker installed!" event)))
(.addEventListener
js/self "activate"
(fn [event]
(js/console.log "Service worker active!" event)))
(.addEventListener
js/self "fetch"
(fn [event]
(js/console.log "Fetch!" event))
(defn init
[]
(js/console.log "Service worker initialized"))
everything builds just fine but I get
Uncaught (in promise) TypeError: Failed to register a ServiceWorker for scope (' ') with script (''): ServiceWorker script evaluation failed
Any idea what I’m doing wrong?sw.core seems to be missing a closing )
for the third event handler, so my guess is that the build is failing
Also, I think the pwa.core/init should be http://pwa.app/init