ClojureScript

require'd namespace is undefined on nodejs

Details

  • Type: Defect Defect
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Environment:
    mac os, clj 1.9, nodejs repl

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
(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

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,

$ 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.

Activity

There are no comments yet on this issue.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: