Well, like I mentioned, you can wrap dev-specific dependencies into a :dev
profile.
:profiles {:dev {:dependencies {[[org.clojure/clojurescript "Blah"]
[hiccups "hiccups-version"]}}}
they will get merged in when the dev profile is active, but won't end up in
artifacts. You could put your :cljsbuild settings in there too, but
there's no harm in leaving it top-level.
https://github.com/technomancy/leiningen/blob/master/doc/PROFILES.md
On Sun, Jun 8, 2014 at 6:52 PM, Chris Jenkins <[email protected]> wrote:
> If I remove clojurescript from my :dependencies in project.clj, two things
> happen:
>
> 1) When I run lein cljsbuild, it complains and says:
>
> "WARNING: It appears your project does not contain a ClojureScript
> dependency. One will be provided for you by lein-cljsbuild ...<snip>" -
> lein-cljsbuild seems to be saying that I *do* need to specify a dependency
> on Clojurescript. Is this correct?
>
> 2) My app depends on hiccups 0.3.0, which in turn pulls in clojurescript
> 0.0-2069 This is slightly earlier than the level that I just removed from
> my dependencies... but I still don't really want that dependency to be
> there. Is hiccups doing the wrong thing here?
>
> So I still have the same question really: Whether I'm writing an app or a
> library, how can I depend upon Clojurescript in such a way that I can run
> lein cljsbuild at dev time and generate some .js files, and such that, at
> run time, my server-side Clojure code can then forget that Clojurescript
> even exists (and certainly not depend upon the Clojurescript compiler)?
>
>
>
> On 8 June 2014 23:40, Gary Trakhman <[email protected]> wrote:
>
>> Clojurescript libs shouldn't specify a Clojurescript dependency (I think).
>>
>> You can perhaps separate the clojurescript part of your app into a
>> separate project or lein profile.
>>
>> There are other issues that can come about by mixing and matching JVM +
>> CLJS deps, one nasty one I hit is a tools.reader incompatibility. CLJS
>> itself is sensitive to tools.reader versions, and it took an hour or so to
>> debug.
>>
>>
>> On Sun, Jun 8, 2014 at 5:58 PM, Chris Jenkins <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> I notice that if my project.clj specifies a dependency on Clojurescript
>>> (or on a Clojurescript library which in turn pulls in Clojurescript), this
>>> causes my project to have a dependency on the Google Closure compiler and
>>> all of its dependencies. If I understand this correctly, it means that
>>> stuff like Guava and FindBugs is on the classpath of my application at
>>> runtime and those libraries are included in any uberjar or uberwar that I
>>> export.
>>>
>>> Is this necessary? Is there any need for my project to see these
>>> libraries at runtime and, if not, is there any way to suppress this
>>> behaviour?
>>>
>>> The reason that this is particular importance to me right now is that
>>> i'm trying to deploy an uberwar of my Clojure+Clojurescript app to a
>>> WebSphere Liberty app server and I think I'm hitting a bug in Guava 15
>>> (which is pulled in by the Google Closure compiler): [1] . I can work
>>> around this by changing my Clojurescript dependency to point to an earlier
>>> version of Clojurescript (which indirectly then depends on an earlier
>>> version of Guava that doesn't suffer from the bug) but there has to be a
>>> better way to make this work.
>>>
>>> I guess this follows on from Nikita's recent question about how to
>>> specify Clojurescript dependencies [2]. Is there a way to specify a
>>> dependency on Clojurescript such that I can use it at dev time but not pull
>>> in its dependencies at runtime?
>>>
>>> Cheers,
>>> Chris
>>>
>>> [1] https://code.google.com/p/guava-libraries/issues/detail?id=1527
>>> [2] https://groups.google.com/forum/#!topic/clojurescript/ppGsyD0xmyw
>>>
>>> --
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "ClojureScript" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/clojurescript.
>>>
>>
>> --
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "ClojureScript" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/clojurescript.
>>
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/clojurescript.
>
--
Note that posts from new members are moderated - please be patient with your
first post.
---
You received this message because you are subscribed to the Google Groups
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.