This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-08-20
Channels
- # admin-announcements (26)
- # beginners (1)
- # boot (157)
- # cider (46)
- # clojure (52)
- # clojure-italy (19)
- # clojure-japan (31)
- # clojure-russia (61)
- # clojure-sg (3)
- # clojurescript (65)
- # clojurex (7)
- # clojutre (8)
- # datascript (15)
- # editors (19)
- # emacs (9)
- # funcool (13)
- # hoplon (74)
- # ldnclj (13)
- # liberator (20)
- # off-topic (70)
- # om (5)
- # onyx (1)
- # re-frame (5)
- # reagent (20)
- # testing (23)
Oh right, it's different from get-env :directories, which gives list of dirs in classpath
When tmp-dir is added to fileset as resource
Is the tmp-dir added to classpath? Or are the files copied to another tmp-dir which is in classpath?
Okay so path of original tmp-dir can't be used to to filter dirs out as it's not the same as path of input dir
Does the input-dir contain files from only one tmp-dir?
Or is it possible one input-dir would contain files from multiple sources?
well links, or anything which looks like files
to the app
there are multiple directories in the fileset mainly to separate files that are on the classpath from files that aren't
So if two cljs tasks add e.g. file ".cljs-dir" to tmp-dir and add that tmp-dir to fileset as resources, it could end up to a input-dir which contains file from other tmp-dirs, i.e. files which might be interesting?
Okay, then I don't see how this could be fixed in Boot-cljs
Ah, now I grok it
the files would be removed from dirs so cljs compiler won't see them
@juhoteperi: what happens if there are 20 continuous cljs builds is that u have to wait 2+minutes and incremental recompiles also take ~4seconds even if only one file has changed.
@onetom: 4 sec recompile doesn't sound too bad
I have the same with a larger project and just one build
No incremental recompiles with optimizations
I'm going to use asset role for cljs output files for now. If there's bug in Cljs we don't have to do workaround.
@juhoteperi: true w :optimizations :none it only takes ~70seconds
What's use case for such project? Having separate js file for each html page?
@juhoteperi: i think i understand the directories thing and why cljs needs it for tests to work
if i have
(task-options!
cljs {:foreign-libs
[{:file ""
:provides ["com.filepicker"]}])
based on https://github.com/clojure/clojurescript/wiki/Dependencies#replacing-a-transitive-cljsjs-dependency-with-another-build-of-the-library
i feel like this :file "http://..."
option is not something officially supported
@micha: just don't want to stuck on an earlier version of the script, because issues might go unnoticed
(deftask fetch []
(let [tmp (tmp-dir!)]
(with-pre-wrap [fs]
(spit (io/file tmp "foo.js" (slurp "http://...")))
(-> fs (add-resource tmp) commit!))))
any opinion on http://gitup.co ?
it looks interesting, but i haven't tried it
@micha: I remember now why Cljs output files have to be on classpath
To serve them using resource-handler
@juhoteperi: we should look at tailrecursion/boot-jetty
I don’t see myself changing. I don’t use Boot on production and I want to use same logic to serve files in dev and prod.
production = to run the app on server
the boot-jetty approach serves uniformly, whether it's local dev or production or war file or whatever
It requires Jetty though
Http-kit
they would be unstoppable
That would be ideal because I've been using the serve task from day 0 and it would be ideal to not have to change anything in the known and trusted boot pipelines.
@micha: @alandipert I've written a complementary wiki page following my PR from the other day. https://github.com/boot-clj/boot/wiki/Deploying-with-Boot
Could some one push boot-cljs to clojars? I’m still missing gpg stuff on os x
@juhoteperi: sure one sec
What ever be the best and proper way to serve the files, serving them for classpath is most used way currently and breaking it would cause lots of anger.
So I reverted the boot-cljs change.
I would like to ensure that Cljs is working correctly
but I guess we can just revert workaround if Cljs changes make it unnecessary to pass all the dirs in
Did you find a reason in Cljs it needs list of all the dirs?
really nothing will change as far as cljs is concerned, other than the martinklepsch bug will be fixed
i think it's the same problem that the component system has with reloading protocols and multimethods
@domkm: I invented quite useful extension to Silk: https://gist.github.com/Deraen/cf46b040730121266807
@juhoteperi: Awesome!
@micha: Does the test work?
I see you use different indentation settings than me :d
docstring
Ah interesting
it's also what clojure core uses: https://github.com/clojure/clojure/blob/master/src/clj/clojure/core.clj#L521-L523
@juhoteperi: i can update changes, bump version and release
@micha: I'm working on error reporting, I though I'll release this with -2
Lol, cljs throws different expcetion when there is error on first compile and on recompile
though I guess it makes sense
"ERROR: Reader tag must be a symbol on file /home/juho/.boot/cache/tmp/home/juho/tmp/boot-cljs-multiple-builds/995/7o2s6s/boot_cljs_multiple_builds/app.cljs, line 9, column 68"
I'm just testing error reporting
Hmh, is there easy way to clean the filepath
to make it relative
ERROR: Reader tag must be a symbol on file boot_cljs_multiple_builds/app.cljs, line 9, column 68
And pushed
and deployed
Does boot uber have the facility to configure how artifacts with the same name are merged?