Yet ?

Le lundi 26 janvier 2015, David Nolen <dnolen.li...@gmail.com> a écrit :

> Webjars doesn't package JS libs in a useful way for ClojureScript.
>
> On Sunday, January 25, 2015, Ivan L <ivan.laza...@gmail.com
> <javascript:_e(%7B%7D,'cvml','ivan.laza...@gmail.com');>> wrote:
>
>> To this end I would hope everyone takes a look at using webjars.org as
>> their source for frontend libraries.  imo, it's a way forward to dep mgmt
>> outside of bower/npm/node etc.
>>
>> On Sunday, January 25, 2015 at 2:42:54 PM UTC-5, David Nolen wrote:
>>>
>>> I strongly recommend the Clojure(Script) community join forces when
>>> packaging libraries to avoid duplicated effort and dependency conflicts.
>>>
>>> CLJSJS seems like a good initiative to me along these lines:
>>> http://cljsjs.github.io
>>>
>>> David
>>>
>>> On Sun, Jan 25, 2015 at 1:49 PM, Vladimir Bokov <bokov...@gmail.com>
>>> wrote:
>>>
>>>> Thanks David!
>>>>
>>>> I also already packaged https://github.com/razum2um/jquery-cljs using
>>>> your react repo as example
>>>>
>>>> суббота, 24 января 2015 г., 21:10:29 UTC+6 пользователь David Nolen
>>>> написал:
>>>>
>>>>> ClojureScript, the Clojure compiler that emits JavaScript source code.
>>>>>
>>>>> README and source code: https://github.com/clojure/clojurescript
>>>>>
>>>>> New release version: 0.0-2719
>>>>>
>>>>> Leiningen dependency information:
>>>>>
>>>>>     [org.clojure/clojurescript "0.0-2719"]
>>>>>
>>>>> ClojureScript is not an island, like Clojure on the JVM, ClojureScript
>>>>> embraces the many benefits provided by the host. However this goal
>>>>> has been hampered by another goal - the compilation stragey. Google
>>>>> Closure Compiler offers superior optimization and minification for
>>>>> ClojureScript while simultaneously making it considerably more
>>>>> difficult to integrate non-Closure compatible libraries. Using popular
>>>>> libraries like jQuery, React or D3 is an error prone process: "which
>>>>> extern did I forget?", "which script tag did I miss for development?",
>>>>> "are these script tags in dependency order?".
>>>>>
>>>>> No more. 0.0-2719 delivers full support for non-Closure compatible
>>>>> libraries through some less known features that have been lurking
>>>>> around for almost three years - `deps.cljs` and the :foreign-libs
>>>>> compiler option.
>>>>>
>>>>> `deps.cljs` is a simple EDN file provided at the root of a JAR that
>>>>> describes additional build information for the ClojureScript
>>>>> compiler. For example here is the `deps.cljs` for the React JAR I
>>>>> maintain:
>>>>>
>>>>> {
>>>>>  :foreign-libs [{:file     "react/react.js"
>>>>>                  :file-min "react/react.min.js"
>>>>>                  :provides ["com.facebook.React"]}
>>>>>                 {:file     "react/react_with_addons.js"
>>>>>                  :file-min "react/react_with_addons.min.js"
>>>>>                  :provides ["com.facebook.ReactWithAddons"]}]
>>>>>  :externs ["react/externs/react.js"]
>>>>> }
>>>>>
>>>>> This file provides all the information ClojureScript needs to
>>>>> correctly manage the foreign dependency for you under all compilation
>>>>> modes and REPLs.
>>>>>
>>>>> In a REPL:
>>>>>
>>>>>    cljs.user> (require 'com.facebook.React)
>>>>>    cljs.user> (. js/React
>>>>>                 (renderToString
>>>>>                   (. js/React (DOM.div nil "Hello!"))))
>>>>>
>>>>> In your project:
>>>>>
>>>>>    (ns foo.bar
>>>>>      (:require com.facebook.React))
>>>>>
>>>>>    (enable-console-print!)
>>>>>
>>>>>    (println
>>>>>      (. js/React
>>>>>        (renderToString
>>>>>          (. js/React (DOM.div nil "Hello!")))))
>>>>>
>>>>> The above works under all compilation modes. There is no need to
>>>>> include React as a script tag under development, there is no need to
>>>>> put
>>>>> script tags in dependency order, there is no need to add React to
>>>>> :preamble under :advanced, and there is no need to explicitly provide
>>>>> :externs.
>>>>>
>>>>> All that is required is that JavaScript libraries be packaged in JARs
>>>>> with a `deps.cljs`.
>>>>>
>>>>> Some of you might reasonably ask why not a tool like Bower for this
>>>>> instead?  Bower requires an additional dependency on Node.js. While
>>>>> ClojureScript embraces Node.js as a useful target it is not a
>>>>> requirement to be productive. Bower manages dependencies, but in the
>>>>> Clojure world we have already embraced Maven for this task and have
>>>>> done the same for ClojureScript. Finally Bower does not address the
>>>>> problem of loading libraries at runtime. This is challenging to do -
>>>>> some JavaScript libraries adopt CommonJS, some AMD, and the most
>>>>> popular ones make no assumptions at all allowing users to simply use
>>>>> script tags as they have done for nearly two decades. The above
>>>>> solution addresses the issue for all ClojureScript users by
>>>>> eliminating paralysis of choice. Finally none of the above
>>>>> precludes Bower usage in any way whatsoever.
>>>>>
>>>>> This new feature addresses a long outstanding pain point with
>>>>> ClojureScript development. All that is required is that we take the
>>>>> time to properly package up the most popular JavaScript libraries that
>>>>> fill gaps not currently served by exising ClojureScript and Google
>>>>> Closure Library functionality.
>>>>>
>>>>> Please kick the tires and feedback is most welcome. This feature
>>>>> touched many bits of code so there are likely to be wrinkles and we
>>>>> want
>>>>> to get these ironed out as quickly as possible.
>>>>>
>>>>> ## 0.0-2719
>>>>>
>>>>> ### Changes
>>>>> * Full support for foreign dependencies
>>>>> * CLJS-985: make ex-info not lose stack information
>>>>> * CLJS-984: Update Node.js REPL support to use public API
>>>>> * CLJS-963: do not bother computing goog/dep.js under :none
>>>>>
>>>>> ### Fixes
>>>>> * CLJS-982: Var derefing should respect Clojure semantics
>>>>> * CLJS-980: ClojureScript REPL stacktraces overrun prompt in many cases
>>>>> * CLJS-979: ClojureScript REPL needs error handling for the special
>>>>> functions
>>>>> * CLJS-971: :reload should work for require-macros special fn
>>>>> * CLJS-980: ClojureScript REPL stacktraces overrun prompt in many cases
>>>>> * CLJS-979: ClojureScript REPL needs error handling for the special
>>>>> functions
>>>>> * CLJS-971: :reload should work for require-macros special fn
>>>>> * CLJS-936: Multi arity bitwise operators
>>>>> * CLJS-962: fix inconsistent hashing of empty collections
>>>>>
>>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To post to this group, send email to clo...@googlegroups.com
>>>> Note that posts from new members are moderated - please be patient with
>>>> your first post.
>>>> To unsubscribe from this group, send email to
>>>> clojure+u...@googlegroups.com
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/clojure?hl=en
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to clojure+u...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>> 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 clojurescript+unsubscr...@googlegroups.com.
>> To post to this group, send email to clojurescr...@googlegroups.com.
>> 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 clojurescript+unsubscr...@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','clojurescript%2bunsubscr...@googlegroups.com');>
> .
> To post to this group, send email to clojurescr...@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','clojurescr...@googlegroups.com');>.
> Visit this group at http://groups.google.com/group/clojurescript.
>


-- 
Laurent Petit

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to