We're updating the issue view to help you get more done. 

require'd namespace is undefined on nodejs

Description

Hi folks, I'm getting errors when require-ing foreign libs in version 1.10.439

My project is set up according to https://clojurescript.org/guides/javascript-modules, but without leiningen.

So, there's deps.edn, {:deps {org.clojure/clojurescript {:mvn/version "1.9.908"}}}

watch.clj

1 2 3 4 5 6 7 8 9 10 (require '[cljs.build.api :as b]) (b/watch "src" {:output-to "main.js" :output-dir "out" :main 'hello-es6.core :target :nodejs :foreign-libs [{:file "src" :module-type :es6}] ;; or :commonjs / :amd :verbose true})

And the cljs and js files copied from those instructions

1 2 3 4 5 src/ ├── hello_es6 │ └── core.cljs └── js └── hello.js

Then I can do clj ./watch.clj (with clojure 1.9) and it works great, node main.js prints the expected message. But if I just change deps.edn to {:deps {org.clojure/clojurescript {:mvn/version "1.10.439"}}}, it breaks. First there's an error about clj-oss/module-deps, which, ok I wanted to use npm anyway so I install that, And then after a clean and a recompile, it fails with,

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ node main.js /Users/jb/src/hello-es6/out/hello_es6/core.js:28 return module$Users$jb$src$hello_es6$src$js$hello.sayHello(); ^ TypeError: module$Users$jb$src$hello_es6$src$js$hello.sayHello is not a function at Function.cljs$core$IFn$_invoke$arity$variadic (/Users/jb/src/hello-es6/out/hello_es6/core.js:28:51) at hello_es6$core$_main (/Users/jb/src/hello-es6/out/hello_es6/core.js:24:29) at Object.cljs$core$apply_to [as apply_to] (/Users/jb/src/hello-es6/out/cljs/core.js:12956:81) at Function.cljs$core$IFn$_invoke$arity$2 (/Users/jb/src/hello-es6/out/cljs/core.js:13400:18) at cljs$core$apply (/Users/jb/src/hello-es6/out/cljs/core.js:13358:24) at Object.<anonymous> (/Users/jb/src/hello-es6/out/AEF573C.js:10:17) at Module._compile (internal/modules/cjs/loader.js:722:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10) at Module.load (internal/modules/cjs/loader.js:620:32) at tryModuleLoad (internal/modules/cjs/loader.js:560:12)

The error persists after adding :npm-deps true to the compiler options.

Environment

mac os, clj 1.9, nodejs repl

Status

Assignee

Unassigned

Reporter

import

Labels

Approval

None

Patch

None

Priority

Major