From 8d9e15fa0ccb55f09f09f813703b09e259572b94 Mon Sep 17 00:00:00 2001 From: Juan Monetta Date: Sun, 28 Dec 2025 16:11:18 -0300 Subject: [PATCH] CLJS-3469: ClojureScript :preloads doesn't work with just cljs.main --repl --- src/main/clojure/cljs/cli.clj | 3 ++- src/main/clojure/cljs/repl/browser.clj | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/clojure/cljs/cli.clj b/src/main/clojure/cljs/cli.clj index da4f2761f..9087151c9 100644 --- a/src/main/clojure/cljs/cli.clj +++ b/src/main/clojure/cljs/cli.clj @@ -321,7 +321,8 @@ present" reopts (merge repl-env-options (select-keys opts [:main :output-dir])) _ (when (or ana/*verbose* (:verbose opts)) (util/debug-prn "REPL env options:" (pr-str reopts))) - renv (apply (target->repl-env (:target options) repl-env) (mapcat identity reopts))] + renv (-> (apply (target->repl-env (:target options) repl-env) (mapcat identity reopts)) + (assoc :compiler-opts opts))] (repl/repl* renv (assoc opts ::repl/fast-initial-prompt? diff --git a/src/main/clojure/cljs/repl/browser.clj b/src/main/clojure/cljs/repl/browser.clj index 2c907c6d1..9b333127e 100644 --- a/src/main/clojure/cljs/repl/browser.clj +++ b/src/main/clojure/cljs/repl/browser.clj @@ -182,7 +182,7 @@ (defn send-static [{path :path :as request} conn - {:keys [static-dir output-dir host port gzip?] :or {output-dir "out"} :as opts}] + {:keys [static-dir output-dir host port gzip? compiler-opts] :or {output-dir "out"} :as opts}] (let [output-dir (when-not (.isAbsolute (io/file output-dir)) output-dir)] (if (and static-dir (not= "/favicon.ico" path)) (let [path (if (= "/" path) "/index.html" path) @@ -224,7 +224,11 @@ clojure.browser.repl/PORT ~port} (merge (:closure-defines @browser-state)) cljsc/normalize-closure-defines - json/write-str)] + json/write-str) + preloads (when-let [preloads (:preloads compiler-opts)] + (mapv (fn [ns-symb] + (str "document.write('');")) + preloads))] (server/send-and-close conn 200 (str "var CLOSURE_UNCOMPILED_DEFINES = " closure-defines ";\n" "var CLOSURE_NO_DEPS = true;\n" @@ -233,6 +237,7 @@ (when (.exists (io/file output-dir "cljs_deps.js")) (str "document.write('');\n")) "document.write('');\n" + (when preloads (str/join "\n" preloads)) "document.write('');\n") "text/javascript" "UTF-8"))