Skip to content

Commit 8953f46

Browse files
committed
CLJS-2659: Unable to require namespaces that require node modules in node cljs repl
handle-js-modules assumes it runs as an early pass over compiler inputs. in the REPL of course this assumption is not true, so in order to correctly update the compilation environment state to reflect known Node dependencies we must get all transitive dependencies for the require form and pass them to handle-js-modules
1 parent 24845ec commit 8953f46

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

src/main/clojure/cljs/repl.cljc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,8 +493,11 @@
493493
ast (->ast form)
494494
ast (if-not (#{:ns :ns*} (:op ast))
495495
ast
496-
(let [ijs (ana/parse-ns [form])] ;; if ns form need to check for js modules - David
497-
(cljsc/handle-js-modules opts [ijs] env/*compiler*)
496+
(let [ijs (ana/parse-ns [form])]
497+
(cljsc/handle-js-modules opts
498+
(deps/dependency-order
499+
(cljsc/add-dependency-sources [ijs] opts))
500+
env/*compiler*)
498501
(binding [ana/*check-alias-dupes* false]
499502
(ana/no-warn (->ast form))))) ;; need new AST after we know what the modules are - David
500503
wrap-js

0 commit comments

Comments
 (0)