Skip to content

Releases: elixir-volt/volt

v0.11.3

17 May 16:40

Choose a tag to compare

  • Fix watcher caching its own compilation results, which could cause stale responses missing HMR preamble, import.meta.env injection, and dev import rewriting
  • Fix CSS ?import cache entries not being evicted on file changes

v0.11.2

16 May 19:07

Choose a tag to compare

  • Fix Tailwind @plugin "daisyui" and subpath imports like daisyui/theme
  • Fix Tailwind @import "tw-animate-css" resolution via style export condition

v0.11.1

16 May 13:54

Choose a tag to compare

Added

  • module_types config option — maps file extensions to bundler loaders (e.g. %{".css" => :empty, ".ttf" => :empty}). Passed to both production builds and vendor prebundling. Useful for packages like Monaco Editor that import non-JS files.

Changed

  • Upgraded OXC to 0.13 and QuickBEAM to 0.10.13.

v0.11.0

16 May 12:30

Choose a tag to compare

Added

  • Named configuration profiles for multi-app and umbrella support. Use config :volt, :my_app_web, [...] to define per-app configs, and pass the profile name to Mix tasks (mix volt.build my_app_web) and the dev server plug (plug Volt.DevServer, profile: :my_app_web). The existing flat config :volt format continues to work unchanged.

v0.10.9

16 May 11:34

Choose a tag to compare

Fixed

  • mix volt.build now compiles the project and starts only Volt's application, avoiding database connection attempts during asset builds in Phoenix projects while keeping Volt services available for Tailwind builds.

v0.10.8

16 May 11:31

Choose a tag to compare

Fixed

  • mix volt.build now compiles the project without starting the application, avoiding database connection attempts during asset builds in Phoenix projects.

v0.10.7

16 May 11:24

Choose a tag to compare

Added

  • Vendor prebundling and dev-server on-demand bundling now honor resolve_dirs, allowing bare imports to resolve from additional module directories such as Phoenix's _build/$MIX_ENV/phoenix-colocated output.
  • Documented the Phoenix LiveView colocated JavaScript setup for projects migrating from esbuild's NODE_PATH configuration.

Changed

  • Upgraded the Tailwind CSS runtime package requirement to ^4.3.0.
  • mix ci now runs the test suite through env MIX_ENV=test, which works with newer Mix versions.

Fixed

  • Additional resolve directories now support package-like folders without package.json, including subpath imports such as phoenix-colocated/my_app.

v0.10.6

15 May 10:12

Choose a tag to compare

Added

  • Dev server output now supports import.meta.env runtime access for modules that reference it, including MODE, DEV, PROD, and exposed VOLT_* values.

Fixed

  • Volt.entry_path/2 now resolves production manifests written by mix volt.build under priv/static/assets/js, returns /assets/js/... paths, and passes them through Phoenix static_path/1 for phx.digest compatibility.
  • Production entry path lookup now resolves relative priv/... output directories through the endpoint OTP app, matching Phoenix release behavior.

v0.10.5

14 May 17:34

Choose a tag to compare

Added

  • Solid JSX/TSX support via Volt.Plugin.Solid. Runs babel-preset-solid through QuickBEAM — no Node.js required. Enable with plugins: [Volt.Plugin.Solid] in Volt config.
  • Solid example app under examples/solid.

Changed

  • Upgraded QuickBEAM to 0.10.12.

Fixed

  • Tailwind plugins using fs.readFileSync(path).toString() (like heroicons.js) now produce correct UTF-8 strings instead of comma-separated ASCII char codes.

v0.10.4

13 May 09:47

Choose a tag to compare

Fixed

  • CSS files imported from JavaScript (import './style.css') are now served as JavaScript modules that inject styles at runtime, matching Vite's behavior. Previously the dev server returned text/css, which browsers rejected as an invalid ES module MIME type.
  • CSS Modules (.module.css) are now served as JavaScript in the dev server regardless of how they are requested, fixing silent failures when importing CSS modules from JS.
  • CSS import specifiers in JS are rewritten to ?import URLs so the dev server can distinguish stylesheet requests from JS module imports and serve each with the correct content type.

Added

  • updateStyle and removeStyle helpers in the HMR client for injecting and removing <style> tags by module ID.
  • HMR style updates now refresh injected CSS import modules in addition to <link> stylesheet tags.