This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-04-11
Channels
- # announcements (3)
- # aws (3)
- # babashka (79)
- # beginners (105)
- # calva (10)
- # chlorine-clover (22)
- # clj-kondo (12)
- # cljs-dev (39)
- # clojure (52)
- # clojure-europe (1)
- # clojure-spec (15)
- # clojure-uk (12)
- # clojurescript (47)
- # conjure (93)
- # data-science (1)
- # datomic (10)
- # emacs (6)
- # figwheel-main (14)
- # fulcro (30)
- # instaparse (3)
- # kaocha (2)
- # lambdaisland (3)
- # malli (2)
- # meander (6)
- # off-topic (27)
- # pathom (14)
- # perun (1)
- # reagent (15)
- # shadow-cljs (69)
- # slack-help (2)
- # spacemacs (5)
- # test-check (23)
- # vim (9)
I could make a project that used react & react-dom no config, run webpack - dev and advanced worked fine
the way this is done - zero impact on any existing tooling - since it doesn't really change anything at all - it just makes it easy to run webpack on our output
the output file can be handed over to whatever bundler that understands require
that you want to use
Because of figwheel and shadow I’ve never used webpack beyond the simple example on http://clojurescript.org. So was interested in the whole thing if you already had it made
you can now publish a CLJS JAR that use node_modules and people can consume it and expect it to work reproducibly
note this means also making something that works for React Native (outside the REPL bits) is trivial
it's definitely something I found disconcerting about the existing CLJS RN integrations (except probably shadow) - overly complicated because there wasn't access to a few important things
RN will be huge. For live reloading, will that now be down to the bundler to provide? And do I need to run clojurescript in auto rebuild to get that?
what I'm looking really forward to is seeing people push more stuff that may be locked up in their apps that could be open source / reusable but there wasn't a practical way for it to work for a wide number of users
we end up doing a lot of work when switching between :none
and :advanced
which is uninteresting
I think with that in place + the global :aot-cache
I think most of the time could be spent only in Closure for advanced builds
{:main cljs-bundle.core
:output-to "out/index.js"
:output-dir "out"
:target :bundle
:bundle-cmd {:none ["npx" "webpack" "--mode=development"]
:default ["npx" "webpack"]}}
added :bundle-cmd
to master - with that in place running a :none
build w/ REPL and :advanced
build feels more or less like ClojureScript
I think the only feature that you will lose going down this path is optimal code-splitting, but after all the work that we've put into it still feel like something only hardcore user reach for.
Is optimal code-splitting different than ordinary code splitting? Is this the thing that shadow-cljs does?
so I think it's a fair tradeoff - curious what folks think that are using CLJS directly w/ code-splitting and foreign libs (who would like the new convenience of the bundle approach)