2026-09-20
每日一文 · 长文精读
SolidStart 2: Replaces Vinxi with a Vite 8 and Enters Maintenance as Its Role Winds Down
SolidStart 2:用Vite 8替换Vinxi,并在其角色逐渐淡出时进入维护模式
作者:Daniel Curtis · InfoQ 原文
摘要:SolidStart 2.0稳定版发布,全面现代化,直接用Vite的Environment API替代Vinxi,提升插件兼容性与CSS处理。但发布后即进入维护模式,因其功能已并入Solid 2.0核心。团队表示v2已用于生产应用。
SolidStart, the full-stack meta-framework built on the fine-grained reactive library SolidJS, has reached a stable 2.0 release, a ground-up modernization that swaps its Vinxi build layer for direct use of Vite's Environment API.
SolidStart,这个构建在细粒度响应式库 SolidJS 之上的全栈元框架,已发布稳定的 2.0 版本,这是一次彻底的现代化改造,用直接使用 Vite 的 Environment API 替换了其 Vinxi 构建层。
Creator Ryan Carniato described it as "a complete modernization of SolidStart on Vite 8 for Solid 1.x," arriving after more than a year of work and 25 alpha, beta, and release candidate builds.
创建者 Ryan Carniato 将其描述为“在 Vite 8 上对 SolidStart 为 Solid 1.x 进行的全面现代化”,历经一年多的工作和 25 个 alpha、beta 及候选发布版本后问世。
SolidStart v1 leaned on Vinxi to coordinate the separate client and server builds a full-stack framework needs, because Vite 5 lacked a first-class way to configure them.
SolidStart v1 依赖 Vinxi 来协调全栈框架所需的独立客户端和服务器构建,因为 Vite 5 缺乏配置它们的一流方式。
With Vite's Environment API now available, the team rebuilt the framework directly on Vite 8 and its Rolldown-powered toolchain, gaining better compatibility with plugins such as Tailwind CSS v4 and direct integration with deployment plugins for Nitro v3, Cloudflare, and Netlify.
随着 Vite 的 Environment API 现已可用,团队直接在 Vite 8 及其 Rolldown 驱动的工具链上重建了框架,获得了与 Tailwind CSS v4 等插件的更好兼容性,并可直接集成 Nitro v3、Cloudflare 和 Netlify 的部署插件。
The release also reworks CSS handling so lazy-loaded component styles are server rendered without the flashes of unstyled content that affected v1.
该版本还重新设计了 CSS 处理,使得懒加载组件样式在服务器端渲染,不会出现影响 v1 的未样式内容闪烁。
For existing users the upgrade is mostly mechanical.
对于现有用户来说,升级主要是机械性的。
SolidStart v2 requires Node.js 24 and Vite 8, and the most visible change is moving framework configuration out of app.config.ts and into vite.config.ts, alongside adjustments to package imports, environment types, server runtimes, and middleware that are detailed in the migration guide.
SolidStart v2 需要 Node.js 24 和 Vite 8,最明显的变化是将框架配置从 app.config.ts 移到 vite.config.ts,同时调整包导入、环境类型、服务器运行时和中间件,迁移指南中有详细说明。
New projects can scaffold v2 directly: npm create solid --start --v2
新项目可以直接搭建 v2:npm create solid --start --v2
Days after shipping stable, SolidStart was effectively moved into maintenance mode, a decision tied to the concurrent Solid 2.0 RC.
在发布稳定版几天后,SolidStart 实际上进入了维护模式,这一决定与同时发布的 Solid 2.0 RC 有关。
In that release the team folds server functions, the serving layer, and file-system routing into core and a router-neutral package, then declares that "Start mode replaces SolidStart: A metaframework exists to fill the gaps in its framework. SolidStart's job was to provide what core couldn't. Over the 2.0 cycle, each of those capabilities moved home: server functions into core, the serving layer into start mode, file-system routing into a router-neutral package. What remained at the end of that process was a wrapper around things that no longer needed wrapping. So instead of shipping a hollow 3.0, we're retiring it. Start mode replaces SolidStart."
在该版本中,团队将服务器函数、服务层和文件系统路由合并到核心和一个与路由器无关的包中,然后声明:“Start 模式取代了 SolidStart:元框架的存在是为了填补其框架的空白。SolidStart 的工作是提供核心无法提供的功能。在 2.0 周期中,这些功能各归其位:服务器函数归入核心,服务层归入 Start 模式,文件系统路由归入与路由器无关的包。最终剩下的只是一个不再需要包装的包装器。因此,我们不推出空洞的 3.0,而是让它退役。Start 模式取代了 SolidStart。”
On Hacker News, commenter agila90 called it "an interesting move,": SolidStart 2.0 was just announced a week ago and immediately placed into maintenance mode.
在 Hacker News 上,评论者 agila90 称其为“一个有趣的举动”:SolidStart 2.0 刚刚在一周前发布,就立即被置于维护模式。
That's an interesting move.
这是一个有趣的举动。
I just hoped that announcement would be another blog post.
我只是希望那个公告会是另一篇博文。
Carniato replied: SolidStart 2.0 has a very important role of moving current projects into the future.
Carniato 回复道:SolidStart 2.0 在将当前项目迁移到未来的过程中扮演着非常重要的角色。
Better tooling was key and it was that rewrite work that allowed me to hoist relevant parts into the core.
更好的工具是关键,正是那次重写工作让我能够将相关部分提升到核心。
Now every Solid project benefits from no FOUC in dev, preloading tag emission during SSR streaming etc...
现在每个 Solid 项目都受益于开发时无 FOUC、SSR 流式渲染期间预加载标签发射等……
I think this is inevitable collapse with AI.
我认为这是与 AI 不可避免的融合。
We want to look for our tools in a single place.
我们希望在一个地方寻找我们的工具。
It doesn't have to differentiate between React and Next when React is the one actually providing the features.
当 React 实际上是提供功能的一方时,它不必区分 React 和 Next。
The team notes that v2 is already running in production apps such as the OpenCode Console.
团队指出,v2 已在 OpenCode Console 等生产应用中运行。
SolidJS is an open-source, fine-grained reactive JavaScript library created by Ryan Carniato that compiles components to direct DOM updates without a virtual DOM.
SolidJS 是一个由 Ryan Carniato 创建的开源细粒度响应式 JavaScript 库,它编译组件以直接更新 DOM,无需虚拟 DOM。
SolidStart is its official meta-framework, adding server-side rendering, streaming, server functions, and file-system routing on top.
SolidStart 是其官方元框架,在之上添加了服务器端渲染、流式渲染、服务器函数和文件系统路由。
阅读理解
1. What is the most significant architectural change in SolidStart 2.0 compared to v1?
2. Why was SolidStart placed into maintenance mode shortly after v2 was released?
3. What improvement does SolidStart 2.0 bring for CSS rendering?