Lein Figwheel Versions Save

Figwheel builds your ClojureScript code and hot loads it into the browser as you are coding!

v0.5.18

5 years ago
  • 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

v0.5.17

5 years ago

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

v0.5.16

6 years ago

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

v0.5.15

6 years ago

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

v0.5.14

6 years ago

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

v0.5.13

6 years ago

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

v0.5.4-7

7 years ago

0.5.4-7 fix :open-command

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

v0.5.4-6

7 years ago

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)

v0.5.4-4

7 years ago
  • 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: https://github.com/bhauman/lein-figwheel/commit/f027b10188ed9d1baa6ec04bbdd14e6a493f68b0
  • 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

v0.5.4-3

7 years ago
  • 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.