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.