Fork me on GitHub
#clojurescript
<
2024-02-14
>
nodename03:02:03

Hallooo Clojurians! I’m looking at https://clojurescript.org/guides/javascript-modules It says there’s a way to incorporate js source files into the build. The demonstration code only uses the :nodejs target, and only covers building an app, and uses the “cljs” command-line tool. I am hoping to include a js source file in a library (which I then lein install) for the browser, and I have installed the clojure cli tools but there seems not to be a cljs command. (I have not used the cli tools much at all; all my projects are still leiningen. ;; The actual problem I’m trying to solve is to get a stack trace (not printed to the console but as data I can pass in an ex-info). The js function does some munging with the arguments object; is that available in a cljs function? Seems not, at least not as js/arguments. Thoughts?

thheller07:02:05

it isn't entirely clear what you are asking since you ask many different things at once that aren't directly related

thheller07:02:26

if you want to include a JS file the most seamless way is writing it as a goog.module file

thheller07:02:12

meaning that you create a foo/bar.js file in your classpath, so if you have src/cljs or src/main or just src as the root path you create src/cljs/foo/bar.js (or whichever other prefix)

thheller07:02:35

in that file you start with goog.module("foo.bar"); and then just regular JS after that

thheller07:02:07

for things you want the have accessible from CLJS you add exports.foo = whatever;

thheller07:02:28

from CLJS you then just (:require [foo.bar :as x]) and x/foo or :refer (foo) to get it

thheller07:02:45

this is entirely unrelated to which tool you are using to build. they all support this

thheller07:02:12

for arguments there is the (js-arguments) macro

nodename06:02:57

@U05224H0W I believe you have solved my issue both specifically and generally so Thanks!