Can Figwheel evaluate ClojureScript code when a resource file changes?
Asked Answered
K

1

7

I have a macro that slurps a markdown file from resources. It provides a convenient way to provide some content. But when I edit the markdown file, Figwheel has no way to know that it needs to re-evaluate the macro.

Putting the markdown in a string inside a cljs file is undesirable because strings with newlines get indented by most Clojure editors, and this causes the markdown to be incorrect (leading spaces are meaningful in markdown).

Is there a way to detect/refresh when the markdown file changes? Or a better solution?

Here is a basic example of what I am trying to do: https://github.com/timothypratley/figwheel-watch-markdown-example

Kaiulani answered 3/9, 2017 at 19:11 Comment(0)
I
2

Figwheel's configs allow you to add ::watch-paths which trigger reloading when modification events come up from the file system. You can also use ::hawk-options to poll the files looking for changes, which apparently might be necessary in some environments.

Interference answered 4/9, 2017 at 6:41 Comment(3)
Thanks for the idea... I couldn't get it working. github.com/timothypratley/figwheel-watch-markdown-example <-- setting the watch-paths doesn't cause recompilation or reloading to occur. Is there something I'm missing?Kaiulani
@TimothyPratley did you try to set log-writer in figwheel-server-options? It could hint what might be going on with the file system watcher.Hydnocarpate
You're right, this one seems to be harder than that on account of the clj-reloading system not recognizing that the clj file with the macro has a dependency on non-Clojure files so needs recompiling when they change. Gonna try to look some more at that tomorrow.Interference

© 2022 - 2024 — McMap. All rights reserved.