diff --git a/shadow-cljs.edn b/shadow-cljs.edn index fffe8512e68d3d56b1bed3d283bad49929af2ff6..03be358861f11c29a14bd1cb2d310994cf387b26 100644 --- a/shadow-cljs.edn +++ b/shadow-cljs.edn @@ -11,7 +11,9 @@ {:app {:target :npm-module :output-dir "frontend/src/cljs_release/" - :dev {:output-dir "frontend/src/cljs/"} + :dev {:output-dir "frontend/src/cljs/" + :compiler-options {:reader-features #{:cljs-dev}}} + :compiler-options {:reader-features #{:cljs-release}} :entries [metabase.domain-entities.queries.util metabase.mbql.js metabase.types diff --git a/src/metabase/util/devtools.cljc b/src/metabase/util/devtools.cljc new file mode 100644 index 0000000000000000000000000000000000000000..3c0d8e45adc3693552912afd47281c24a39732dc --- /dev/null +++ b/src/metabase/util/devtools.cljc @@ -0,0 +1,15 @@ +(ns metabase.util.devtools + "Preload magic to load cljs-devtools. Only imported by dev.js in dev mode; no-op in production." + ;; This special context is defined only for dev-mode shadow-cljs builds; see shadow-cljs.edn + ;; In release builds, and JVM Clojure, this file is an empty namespace. + #?(:cljs-dev (:require + [devtools.core :as devtools]))) + +#?(:cljs-dev + (do + ;; The advanced mode check is busted, it always assumes Webpack is advanced. + ;; The reader conditionals empty this file in release builds, plus it's only required + ;; from frontend/src/metabase/dev.js, which is replaced with dev-noop.js in release mode. + (devtools/set-pref! :disable-advanced-mode-check true) + (devtools/install!) + (js/console.log "CLJS Devtools loaded"))) diff --git a/src/metabase/util/devtools.cljs b/src/metabase/util/devtools.cljs deleted file mode 100644 index cde2dd01b0d65b65efa64273617f87824eaf0886..0000000000000000000000000000000000000000 --- a/src/metabase/util/devtools.cljs +++ /dev/null @@ -1,11 +0,0 @@ -(ns metabase.util.devtools - "Preload magic to load cljs-devtools. Only imported by dev.js in dev mode; no-op in production." - (:require - [devtools.core :as devtools])) - -;; The advanced mode check is busted, it always assumes Webpack is advanced. -;; This entire file is skipped for release builds; it's only required from frontend/src/metabase/dev.js -(devtools/set-pref! :disable-advanced-mode-check true) -(devtools/install!) - -(js/console.log "CLJS Devtools loaded")