@arkstack/inertia

中文文档
0.22.2发布于 2026/11/07ES Module近 30 天下载 2128

InertiaJS server-side adapter for Arkstack, building the modern monolith with server-driven SPAs.

原始使用文档
文档目录4 节
  1. Install
  2. Usage
  3. Server-side rendering
  4. Documentation

@arkstack/inertia

@arkstack/inertia

A runtime-agnostic InertiaJS server-side adapter for Arkstack. Build a single-page app (Vue, React, or Svelte) without an API: controllers return page components and props, and Inertia handles client-side routing. Works with both the Express and H3 drivers.

Install

pnpm add @arkstack/inertia

Then register the middleware in src/config/middleware.ts under before (alongside resora()):

import { inertia, resora } from '@arkstack/driver-express/middlewares' // or @arkstack/driver-h3/middlewares

export default (): MiddlewareConfig => ({
  before: [resora(), inertia()],
})

Publish the config and root template:

ark publish --package @arkstack/inertia

Usage

import { inertia, Inertia } from '@arkstack/inertia'

// Render a page — JSON page object on Inertia visits, full HTML on first load
return inertia('Users/Index', { users: await User.all() })

// Shared props (global at boot, or request-scoped inside a handler)
inertia().share('appName', config('app.name'))

// Partial-reload helpers
inertia('Users/Index', {
  users: await User.all(),
  stats: Inertia.lazy(() => expensiveStats()), // only on a partial reload that asks for it
  chart: Inertia.defer(() => buildChart()), // fetched by the client after load
  auth: Inertia.always({ user: request.user }), // always present, even on partials
})

// Redirects (302 -> 303 for PUT/PATCH/DELETE) and external/full-page visits
Inertia.redirect('/users')
Inertia.location('https://example.com')

Server-side rendering

Set ssr.enabled in src/config/inertia.ts, build an SSR bundle, and run it with the supervised command:

ark inertia:ssr   # runs dist-ssr/ssr.js, restarting it if it crashes

The initial visit is then server-rendered and the client hydrates it; if the SSR server is unreachable the adapter falls back to client-side rendering.

Documentation

See the Inertia guide for the full setup, partial reloads, asset versioning, configuration, and SSR.

版本与发布记录

@arkstack/inertia 共发布 77 个版本,首次发布于 2026/06/28;过去 12 个月发布了 77 个版本。

版本发布日期距今
0.22.2latest2026/11/07今天
0.22.12026/11/052 天前
0.22.02026/11/052 天前
0.21.12026/11/052 天前
0.21.02026/10/2810 天前
0.20.22026/10/2315 天前

关于 @arkstack/inertia 的常见问题

@arkstack/inertia 是什么?

InertiaJS server-side adapter for Arkstack, building the modern monolith with server-driven SPAs.

如何安装 @arkstack/inertia?

在项目目录运行 npm install @arkstack/inertia,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@arkstack/http(^0.22.2)、@arkstack/contract(^0.22.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@arkstack/inertia 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/arkstack__inertia 是否存在。

@arkstack/inertia 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@arkstack/inertia 可以商用吗?

@arkstack/inertia 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@arkstack/inertia 的下载量有多少?

根据 npm 官方下载统计,@arkstack/inertia 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,128 次,日均约 71 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@arkstack/inertia 还在维护吗?

最新版本 0.22.2 发布于 2026/11/07(今天);至今共发布 77 个版本,其中过去 12 个月发布了 77 个;首次发布于 2026/06/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。