Skip to content

Releases: bhauman/lein-figwheel

maintenance

20 Dec 17:46
Compare
Choose a tag to compare
  • if the new nrepl is available start the server with it
  • only load nREPL dep if an :nrepl-port has been specified
  • remove single segment ns in namespace forms forms
  • allow :npm-deps to be true as well as false
  • added better error checking for missing ring handler
  • Clojure version comparison logic fix
  • change client side logging of a compile exception to a console.warning to support React Native better

new nREPL compatibility

24 Oct 01:04
Compare
Choose a tag to compare

Releasing this to support nREPL changes

  • fix how nREPL is required to support the new nrepl codebase
  • fix repl eval of namespace
  • some updated schema validations

Caching improvements & no trampoline on windows

07 May 00:05
Compare
Choose a tag to compare

Daniel Compton did some great work solving the caching issues.

There is also a very confusing problem with lein trampoline on Windows
see issue #682. So I turned off the auto-trampoline feature for
Windows which allowed the for the elegent use of Rebel readline by
just calling lein figwheel.

Windows users can still elect to use trampoline with figwheel and get
the benefits of rebel-readline but the will have to call lein
trampoline figwheel and this should be done with the knowledge that
they may experience a classpath corruption issue.

  • worker target support PR #659
  • important caching tweaks for serving CLJS assets PR #667
  • :npm-deps false support PR #678
  • fix to prefer and detect new cider/piggieback

Rebel Readline

28 Feb 20:40
Compare
Choose a tag to compare

A big thanks goes out to ClojuristsTogether.org and everyone who
contributed for helping to make this work possible!

This release includes the biggest change that Figwheel has had in
quite a while. After 2 months of work I'm proud to release a version
of Figwheel that has Clojure readline support. Even if you always use
your editor REPL like me, you make want to try the REPL that lein figwheel
launches. You may find that its a handy tool to have around.

You can learn more about rebel-readline at
https://github.com/bhauman/rebel-readline.

Don't forget this gets rid of the need for rlwrap.

You can disable the Rebel readline by adding :readline false to your
:figwheel config.

This release requires that you use
[org.clojure/clojurescript "1.9.946"] at least.

This release also, adds automatic support for projects that use
Code Splitting. You
should now be able to use code splitting and have Figwheel "just work".

Other changes:

  • Figwheel is now using cljs :preloads for figwheel client injection

0.5.14 Faster loading for complex dependency trees

02 Oct 00:28
Compare
Choose a tag to compare

Figwheel inherited a topo sort algorithm from the CLJS compiler. It
turned out that this graph sorting algorithm missed a very important
optimization, which is fixed in this release. If you have project that
has a lot of namespaces and have experienced slower load times when
you change a file that is deeper in your dependency chain, you should
notice a big improvement when using this release.

Added JavaScript environment hooks for tools like re-natal to
customize the websocket implementation and the script loading behavior.

  • improved topo-sort algorithm

  • CLJS compile option: the :entries key is no longer required in the
    :modules configs

  • new :repl-eval-timeout allows you to increase or lower the
    Figwheel REPL eval timeout as a top level config setting

  • added goog.global.FIGWHEEL_WEBSOCKET_CLASS to allow one to
    override or supply a websocket implementation for the figwheel
    client

  • added goog.global.FIGWHEEL_IMPORT_SCRIPT to allow one to override
    or supply a function to the figwheel client, that is responsible for
    loading a namespace into the JavaScript runtime.

  • added two new namespaces that can be supplied the ClojureScript
    compiler's :preloads option.

    The two namespaces are only different in that one set's up figwheel
    while the other both sets up and starts figwheel. These are
    currently meant to clean up how the figwheel client is injected into
    the build. The next release of Figwheel will do away with generating
    a small ClojureScript file to inject the Figwheel client into build.

    • figwheel.connect which will take a configuration from
      :external-tooling > :figwheel/config and supply a
      figwheel.connect/start function which contains the supplied
      config options. This function is exported so that it can be easily
      called from JavaScript.
    • figwheel.preload which simply calls the above figwheel.connect/start
      function

Small updates

25 Aug 13:09
Compare
Choose a tag to compare

0.5.13 Small updates

  • remove the use of a deprecated Google Closure library function
    goog.net.jsloader.load
  • add CLJS compile option :process-shim to validation code

Fix :open-command

08 Jul 13:32
Compare
Choose a tag to compare

0.5.4-7 fix :open-command

  • PR #449 Arguments to open-file-command must be strings, not numeric.

allow figwheel system to take the result of (config/fetch-config)

08 Jul 13:08
Compare
Choose a tag to compare

0.5.4-6 update sidecar system apis to handle result of fetch-config

  • PR #447 change the validator to allow ES6 and :no-transpile
  • #440 allow figwheel system to take the result of (config/fetch-config)

0.5.4-4 added :preloads compiler option

23 Jun 00:34
Compare
Choose a tag to compare
  • added validation support for :preloads compiler option
  • ! removed compojure as a dependency
    Figwheel used compojure in its server to handle routing
    this was overkill. It complicated the routing while adding an unneeded dependency.
    Strange things where happening when wrap-reload was being used in an
    embedded :ring-handler.
    There is so little routing functionality in figwheel that I just created
    what was needed with simple ring middleware. If the behavior of your
    :ring-handler changes (routes not being resolved, bad headers etc.)
    please let me know. For reference here is the commit:
    f027b10
  • improved the resiliency of the plugin around bad initial config data.
    The lein plugin uses config data from the project.clj before it has been
    validated, I added some extra safe guards to protect against start up errors

Improvements around starting figwheel from the REPL

14 Jun 19:05
Compare
Choose a tag to compare
  • I added back figwheel-sidecar/get-project-builds which was removed in 0.5.4
    its now here to stay.

Improved the expressiveness of (start-figwheel!)

before (start-figwheel!) only optionally took a configuration. Now it
takes optional build-ids as well.

So you can do this:

(start-fighweel! "dev" "admin")

And it will pull in the config from the environment and start
autobuilding the supplied build ids.

Or you can supply a config and build ids ...

(start-fighweel!
  {:figwheel-options {:server-port 4000}
   :all-builds [{:id ...}]}
   "dev" "admin")

I have also beefed up the error checking and feedback around this call.