Change8

@solidjs/compiler@2.0.0-rc.3

Breaking Changes
📦 solid-jsView on GitHub →
2 breaking2 features🐛 2 fixes🔧 11 symbols

Summary

This release absorbs the 0.50 expressions snapshot, reframes compilers as Solid 2.0 packages, and fixes several divergences in Babel and native compiler lowering. Module-level "use server" exports now require direct function application.

⚠️ Breaking Changes

  • Module-level "use server" exports must now be precisely the server functions. Wrapping an export in a call expression (e.g., `export const x = GET(async () => ...)`) is now a compile error. To fix this, apply the `"use server"` directive at the function level instead of wrapping the export.
  • The compiler and Babel plugin are now Solid 2.0 packages. Node `transform()` now defaults `moduleName` to `@solidjs/web` and `builtIns` to the Solid control-flow set, matching `@solidjs/babel-plugin`.

Migration Steps

  1. If you were using module-level `"use server"` exports wrapped in call expressions, move the `"use server"` directive to the function level.
  2. Update imports for runtimes to use `@solidjs/web`, `h`, `html`, or `universal`.
  3. Remove `babel-preset-solid` from your configuration.

✨ New Features

  • The 0.50 expressions snapshot has been absorbed into this repository, with compilers lifted as `@solidjs/babel-plugin` and `@solidjs/compiler`, and runtimes dumped into `@solidjs/web`, `h`, `html`, and `universal`.
  • The expressions dump has been collapsed by dropping the rxcore seam, flattening runtimes into package `src/`, deleting `babel-preset-solid`, and publishing compiler natives as `@solidjs/compiler-*`.

🐛 Bug Fixes

  • Fixed Babel and native compiler lowering divergences around nested content, custom-element ownership, static attributes, namespaces, and conditional evaluation order.
  • SSR now leaves a sole component child unescaped (it is a value; the callee's insert sites escape) and only HTML-escapes mixed/fragment children and element holes.

Affected Symbols