@solidjs/compiler@2.0.0-rc.3
Breaking Changes📦 solid-jsView on GitHub →
⚠ 2 breaking✨ 2 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
- If you were using module-level `"use server"` exports wrapped in call expressions, move the `"use server"` directive to the function level.
- Update imports for runtimes to use `@solidjs/web`, `h`, `html`, or `universal`.
- 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.