Fork me on GitHub

A question, are now cljx files completely excluded from boot-cljs? I am trying to add timbre but it looks like it is not add timbre.cljx on the classpath


hmm.. there is a dosh command for running shell scripts, but i’m having a hard time getting boot to write to the proper dir as a result of the sh; is there a good example of this somewhere?


Hey guys, is there anything I can do about this error?


tldr: library from clojars loads fine using lein, throws an error when trying to load via boot.


I get a null point exception in my code when I do boot run which I don't get when I call the -main function in the repl


@yenda: got the stack trace? sounds odd


Is there a way with boot-cljs to generate a source map but not include //# sourceMappingUrl=... in the source file?


@domkm: Source maps are handled by ClojureScript and I don't think there is such option


Okay, thanks @juhoteperi


I've been messing around with cljs and boot. When I use boot-cljs to generate JS I would like to create a task to create a production build without the ___.out directories. I spent days trying to find out how to do this. Any recommendations?


@jupl: You can remove the out directory using sift task (`boot sift --help`)


Will take a look. Thanks!


@jupl: I do it all the time -> (sift :include #{#".*.out"} :invert true)


@richiardiandrea Perfect!


along those same lines, is there a way to filter down the matching fileset? for example, if I want “all files ending in .css, except those in ‘/dir’”? getting the css is simple (c/by-ext [“.css”]) but i’m not sure if I should be filtering them “raw” via filterv, or if there is a better (more reliable) way? (or is this what sift is for?)


@lwhorton: the idea with sift is to make many common movements/renames in the fileset easy to do without creating a task, but yes the idea is if you need to do more sophisticated stuff you do it in code


using the fileset API in a task of your own design


i couldn’t figure out how to use the by/re or by/path to get the above-mentioned case


but thanks for the clarification with sift


Sooo can now pods see Clojure data structures? I mean with with-pod macro. I am trying to call aot and jar in a pod


And on general to include only the deps I want in my final uberjas (without all the boot plugins for instance)


am I missing something obvious here? I’ve looked over 3-4 example tasks for how to ‘cache’ the result to only run tasks over changed files, but for some reason my task is running over all the files even though 1 changed:

(let [tmp (c/tmp-dir!)
          prev (atom nil)]
        (c/with-pre-wrap fileset
            (let [diff (c/fileset-diff @prev fileset)
                  in-files (c/input-files diff)
                  styl-files (c/by-ext [".styl"] in-files)]
                (reset! prev styl-files)
                (when (seq styl-files)
                    (u/info "Detecting %d changed .styl files.\n" (count styl-files))
                    (doseq [in styl-files]
                        … do the xformation))
                (-> fileset
                    (c/add-resource tmp)


it’s the same simple pattern everywhere - outside the block declare an atom, get a diff with fileset-diff between atom and new fileset, filter out files, update atom, run task over thinned fileset


but for some reason that “Detecting %d changed” will always spit out the same # of files.


ayup, after re-reading for the 10th time I see my mistake reset! prev styl-files -> reset! prev fileset … it’s a little counterintuitive, but I get it now.


A question: I set one dependency only with set-env! at the beginning of the there a way to tell uber not to pack it?


@richiardiandrea: I think you set the :scope to "test"


@jupl thanks, I tried :exclude-scope but test is already excluded