elm-watch

`elm make` in watch mode. Fast and reliable.

MIT License

Downloads
5.9K
Stars
153
Committers
6

Bot releases are visible (Hide)

elm-watch - 1.0.0-beta.11

Published by lydell over 2 years ago

  • 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.
elm-watch - 1.0.0-beta.10

Published by lydell over 2 years ago

  • 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.
elm-watch - 1.0.0-beta.9

Published by lydell over 2 years ago

  • 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.
elm-watch - 1.0.0-beta.8

Published by lydell over 2 years ago

  • Fixed: All Elm programs except Browser.application works when served on the file:// protocol (when you open an HTML file straight in the browser). However, elm-watch hot reloading code accidentally triggered the Browser.application runtime error for file:// even on other program types, such as Browser.element. That is now fixed, so you can use Browser.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.
elm-watch - 1.0.0-beta.7

Published by lydell over 2 years ago

  • 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.
elm-watch - 1.0.0-beta.6

Published by lydell over 2 years ago

  • 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 which elm.json files elm-watch found and uses for your targets.
elm-watch - 1.0.0-beta.5

Published by lydell over 2 years ago

  • 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.
elm-watch - 1.0.0-beta.4

Published by lydell over 2 years ago

  • Fixed: When only type checking targets (because no Web Sockets are connected), the timing printed for parsing all imports of your code was wrong. Each target included the time of all previous targets instead of just timing itself.
elm-watch - 1.0.0-beta.3

Published by lydell over 2 years ago

  • Fixed: The previous version fixed a case where using for example Browser.Dom.focus in init caused elm-watch to always reload the page instead of hot reloading. It was an issue with Tasks. However, there’s more to the story. Http.task returns a cancelable task. They still caused elm-watch to do full instead of hot reloads! This version fixes that problem.
elm-watch - 1.0.0-beta.2

Published by lydell over 2 years ago

  • Fixed: Using Tasks, such as Browser.Dom.focus "my-id", in init used to cause elm-watch to always consider the return value of init to have changed and therefore to reload the page instead of hot reloading. This was due to a null vs undefined oversight in some Elm kernel code. I’ve added a workaround for it in elm-watch (basically, consider null and undefined to be equal.)

  • Fixed: You can now switch compilation mode if there are compilation errors. Example: You have some Debug.log in your code and switch to optimize mode. Now you get compilation errors because Debug.log is not allowed in optimize mode. Previously, that resulted in a state where you had to remove all Debug.log before you could do anything again. Now, elm-watch handles that case where the selected mode is one thing (optimize) but the running code has another mode (standard), and allows you to switch back to standard mode (or debug mode, if appropriate).

elm-watch - 1.0.0-beta.1

Published by lydell over 2 years ago

Initial release.