This removes the hawk watching library and utilizes com.nextjournal/beholder library instead. Which provides a much faster reloading experience if you have a large set of files. This library unfortunately includes the SL4j API library which causes a gross warning when figwheel starts and there are no logger implementations defined.
Webpack 5 changes the cli so that the -o flag no longer supports a full path to a output file only the output path.
For this reason the npx command emmitted by figwheel has changed to use --output-path and --output-filename explicitly rather than the -o flag.
I.E.
npx webpack --mode=development ./resources/public/cljs-out/dev/main.js --output-path ./resources/public/cljs-out/dev --output-filename main_bundle.js
New React Native support which includes support for React Native CLI and Expo as well as MacOS. See the docs here: https://figwheel.org/docs/react-native.html
:ssl-valid-hosts
allows you to specify what hosts the generated certificate should support:use-ssl
now creates a local dev certificate if one isn't supplied:use-ssl
figwheel configuration option as sugar to make
setting up https easierFixed a major bug introduced in 0.2.7 that caused extra-mains to overwrite the builds :output-to.
Also added the :clean-outputs
Figwheel option that will clean the
compiler's output targets before compiling and starting the build.
Also added the --clean
command line option that does the same thing.
Here are some examples of using the --clean
CLI option:
# this cleans before building
clojure -m figwheel.main --clean -b dev -r
# this cleans all the builds
clojure -m figwheel.main --clean
# this only cleans the dev build
clojure -m figwheel.main --clean dev
This version has a serious bug when using auto-testing or extra-mains. Please use 0.2.8
Pushed :bundle
target support forward a bit further.
:bundle-freq
figwheel-option with :once
, :always
and :smart
which bundles when output-to
or npm_deps.js
changes:auto-bundle
figwheel-option so supply basic default bundle config:output-to
is inside the :output-dir
for the bundle target--install-deps
cli support to the schemaGot extra-mains and auto-testing up and running along with a new intial docs page https://figwheel.org/docs/npm.html to help get started with an NPM based ClojureScript project.
:bundle-cmd
cljs option: it interpolates :output-to
and :final-output-to
:bundle-cmd
only bundles one time when watching and compiling:bundle-once
to false
to have bundling occur on every compile:final-output-to
if you don't want the default of :output-to
+ "_bundle"support for the new :bundle target requires clojurescript >= 1.10.764
The latest ClojureScript updated the Google Closure library which included some breaking changes when it comes to reloading. This release fixes those problems and also fixes fighweel-main problems that interfered with the support of the new :bundle target.
You can currently learn more about the new bundle target in the Clojruescript guide
https://clojurescript.org/guides/webpack
Using the bundle target will break auto-testing and the default index page. You will have to have your own host page.
There still needs to be some work done on Extra mains to get them to work properly with the new bundle target.
The main problem for many of these automated features is that figwheel has no idea of where the output file of webpack is because the webpack config is exterior to figwheel itself.
The new :bundle target probably deprecates the :npm-deps way of doing things. We'll need to take some time with this way of doing things to see what makes sense.
fix goog warning
fix warning notification bug
update ring dependency to 1.7.1
fix goog/warning reference
fix dangling colon in connect url
up the message size limit for the Websocket to 16M
handle css imports in css-realoding
some :npm-deps fixes
output cljsc_opts ot help with bootstrapping clojurescript
So nothing groundbreaking in this release, just firming things up and pushing out changes because they have sat in the repo long enough.
This release has focused on making it much easier to integrate testing into your workflow. Auto-testing, CLI testing for dev ops integration, and headless testing support come together to make testing a major feature in figwheel.main.
See the testing documentation here: https://figwheel.org/docs/testing.html See the async main script docs here: https://figwheel.org/docs/main_script.html
:auto-testing true
--main
CLi arg that also supports non-zero exit status:launch-js
option was created to support use of headless environments during testing Learn more--compile --repl
didn't start a replThe new :extra-main-files
option makes integrating things like tests
and devcards to your build super simple and CPU efficient
Learn more
There was a long standing bug with :global-exports
support that I
was able to squash which in turn led to changes that make working with
npm modules much easier.
The new :npm
option will help you make quick work of integrating
webpack bundled npm modules into your
build. Learn more
:pre-build-hooks
and :post-build-hooks
config options Learn morefigwheel.main
api in the CLJS repl so that it works
properly under nREPL:build-inputs
config option Learn More\\(ツ)/
, I pretty much had to after I saw this tweetFixes a bug that was deleting the listeners that notified the client to reload.
update: hot reloading does not work when figwheel.main is started from nREPL
Added a Scripting API that allows one to start multiple builds and
then attach a REPL to any of the running builds. The API also allows
one to stop builds and obtain a repl-env from a build (this is
expecially helpful for VIM fireplace). See the figwheel.main.api
namespace and the docs at
https://figwheel.org/docs/scripting_api.html
--build dev:other
:asset-path
which prevented the REPL from connecting--build
"unknown"
rather than common name "dev"
--serve
flag after the --build-once
flag, for testing advanced compiles and such:optimizations :none
:whitespace
, :simple
or :advanced
only pass :main
ns to compiler:ring-handler
doesn't load, prints out syntax errors etc.:reload-clj-files false
should still reload cljc files on the CLJS sideThis release was only to establish https://github.com/bhauman/figwheel-main as the new home of com.bhauman/figwheel-main
figwheel.main
resources/public/index.html
and the resources
directory is not on the classpath:main
ns is in, is on the classpathbinaryage/devtools
in opt none builds targeting the browser:ring-handler
in build metadata didn't work:client-log-level
option to set the level for client side loggingCan you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close