Releases: lydell/elm-watch
Releases · lydell/elm-watch
1.0.0-beta.13
- Improved: elm-watch used to wait for
elm make
to finish, no matter how long it takes. Due to compiler bugs, certain input can causeelm make
to hang. If you then changed your code to avoid the compiler bugs, elm-watch would notice your change but still wait for that previouselm make
invocation to finish. In this version, elm-watch killselm make
after 10 seconds if you make a new change while it’s running. The idea is to avoid killingelm make
to avoid corrupting the elm-stuff folder, but after 10 seconds it should have been done long ago. - Improved: If you delete the elm-stuff folder (like some compiler error messages suggest), elm-watch now automatically re-runs.
- Improved: Compilation is now atomic. elm-watch used to run
elm make --output=your/output.js
and then readyour/output.js
and add the extra hot reloading code and run postprocessing. However, I managed to refresh the page in the browser while that was happening, so I got just Elm’s JS loaded and I was confused why the elm-watch UI wasn’t there. In this version, elm-watch runselm make --output=elm-stuff/elm-watch/0.js
instead – it first writes to a temporary file, and then writes to your real output path once everything is ready. Note: This also moveselm-stuff/elm-watch-stuff.json
toelm-stuff/elm-watch/stuff.json
, since the temporary files are written inelm-stuff/elm-watch/
and I wanted everything in there. Since elm-watch is a beta and elm-watch-stuff.json contains nothing essential I didn’t bother with any migration or so of it. - Improved: A tiny little performance boost by avoiding unnecessary string/buffer conversions internally.
1.0.0-beta.12
- Fixed: A bug on Windows where long running postprocess commands weren’t killed as they are supposed to when compilation is interrupted by a new code change.
- Improved: All tests now pass on Windows (locally, not in CI yet) and there are no known Windows issues.
1.0.0-beta.11
- Improved: elm-watch now ships with a workaround for an Elm compiler bug, where
elm
emits some non-JSON when your elm-stuff/ folder is corrupt. The workaround results in a nicer error message on elm-watch’s side.
1.0.0-beta.10
- Fixed: Tab characters are not allowed in Elm files. They are also not allowed inside JSON strings. The Elm compiler has a
--report json
flag which elm-watch uses. See where this is going? The compiler has a bug where when it encodes the “NO TABS” error as JSON, it doesn’t turn the literal tab character that was the problem into\t
. This caused elm-watch to fail parsing the JSON. elm-watch now includes a workaround for this situation so it can display the error message. - Improved: If you start your target names with an emoji, elm-watch now tries to display them better.
1.0.0-beta.9
- Improved: Injecting the hot reloading code is now ~20x faster. On a big project, it went from ~170 ms to ~10 ms for me.
- Fixed: Time spent queuing for postprocessing is now calculated correctly.
1.0.0-beta.8
- Fixed: All Elm programs except
Browser.application
works when served on thefile://
protocol (when you open an HTML file straight in the browser). However, elm-watch hot reloading code accidentally triggered theBrowser.application
runtime error forfile://
even on other program types, such asBrowser.element
. That is now fixed, so you can useBrowser.element
with a plain HTML file if you like. - Improved: Windows support. 80-90% of all tests pass. The example seems to work when playing around with it a little bit. You can definitely try it out on Windows, but I don’t dare promising there will be no problems.
1.0.0-beta.7
- Removed: The terminal resize listener added in 1.0.0-beta.5:
- I got the question if a rebuild really is triggered on resize. That’s an indication that it is too weird.
- I got feedback that it can be useful to keep the scrolling position (when having many compilation errors) and making the terminal larger to better see an error. This means we can’t re-render either.
- It’s not super bad without the resize listener. The target timings won’t be aligned and the separators won’t have the correct length.
- Everything will still be rendered correctly on the next cycle.
1.0.0-beta.6
- Improved: Running elm-watch in the (currently quite secret) debug mode now prints the
Project
data structure, which (among other things) shows the absolute paths of all interesting files in your project, such as whichelm.json
files elm-watch found and uses for your targets.
1.0.0-beta.5
- Fixed: elm-watch now reacts to you resizing the terminal window. Previously, the separators between error messages would be too long or too short, and the timings of each target wouldn’t be right-aligned correctly.
1.0.0-beta.4
- Fixed: When only type checking targets (because no Web Sockets are connected), the timing printed for parsing all
import
s of your code was wrong. Each target included the time of all previous targets instead of just timing itself.