# @elysiumjs/styx 中文文档

规范地址：https://npmcn.com/package/%40elysiumjs/styx/

版本：0\.17\.1
npm 元数据更新时间：2026-11-13T09:01:49.938Z
中文译文更新时间：2026-11-13T15:58:17.490Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40elysiumjs/styx
原文对照：https://npmcn.com/package/%40elysiumjs/styx/?lang=original
项目主页：https://github.com/na2axl/elysiumjs/tree/main/@elysiumjs/styx#readme
源码仓库：https://github.com/na2axl/elysiumjs

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：439 kB，82 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2025-04-25T13:25:54.782Z
- 最新版本发布：2026-11-13T09:01:49.768Z
- 近 30 天下载量：3676（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：32（近 12 个月 25 个）

## 中文简介

Elysium.js框架的命令行工具:创建项目,生成代码并运行app命令.

## 安装

```sh
npm install @elysiumjs/styx
```

也可以使用：`pnpm add @elysiumjs/styx`、`yarn add @elysiumjs/styx`、`bun add @elysiumjs/styx`

## README

# @elysiumjs/styx (英语)

Elysium.js框架的命令行工具. 它创建项目,生成代码并运行您的应用命令.

## 安装

在全球安装以创建项目,并在任何地方使用:

```bash
bun add -g @elysiumjs/styx
```

项目还将其安装为dev依赖(`styx create` 这样做)。 在一个项目中,全球 `styx` 将每个命令放到项目自己的副本上,所以每个项目运行它所写的Styx版本.

独立可执行文件,既不需要Bun文件,也不需要软件包文件,使用 `bun run build:bin` (当前平台)或 `bun run build:bin --all` (Linux, macOS和Windows). 他们将代码根和项目模板与赫法斯图斯嵌入.

## 创建项目

```bash
styx create my-app
```

没有选项,它要求模板(单一或多模块),运行时间,模块,插件和特性. 选项跳过提示 :

```bash
styx create my-app --template multi --modules users,billing --features prettier,hephaestus --git false
```

`--install false` 在不安装依赖的情况下写入文件, `--force` 替换不为空的文件夹,并 `--yes` 为每个未给出的选项取默认值. `bun create elysium my-app` 运行相同的命令.

## 生成代码

生成器会从stubs写出文件,从不启动您的应用程序,所以在应用程序启动前工作:

```bash
styx make:command --name SendReport
styx make:controller --name UserController
styx make:job --name ImportUsers
styx make:middleware --name AuthMiddleware
styx make:model --name User
styx make:repository --name UserRepository
styx make:seeder --name CountriesSeeder
styx make:service --name UserService
styx make:validator --name CreateUser
styx make:view --name Post
styx module:new --name billing
styx module:rename --module billing --name payments
```

在多模块项目中,通过 `--module <name>`运行 `styx help <command>` 每一个选项.

文件与模块文件夹以 kebab- case 命名 : `styx make:service --name UserProfileService` 写入 `services/user-profile.service.ts`。验证人只持有其图案,除非你要求其方法 `--authorize` 财务报告和审定财务报表 `--validate`,并宣布一个模型 `supportTenancy` 仅使用 `--support-tenancy`。 。 。 .

## 类型客户端

`styx routes:generate` 将应用程序的路由类型写入 `src/routes.gen.ts` (一组) `routes` 内 `.elysiumrc` 或通过 `--out`,绝对或相对项目,以改变它). 文件导出 `AppRoutes`,对于伊甸园:

```ts
import type { AppRoutes } from './routes.gen';

import { treaty } from '@elysia/eden';

const api = treaty<AppRoutes>('http://localhost:3000');
const { data } = await api.users({ id }).get();
```

类型来自控制器方法:用 `@Http.param`, (中文(简体) ), `@Http.query` 财务报告和审定财务报表 `@Http.body` 给出请求类型,返回类型给出响应类型,因此注释返回不同形状的方法类型。 一条路线 `response` 是视图( e)`PostView`, (中文(简体) ), `PostView.list` 或者说 `PostView.page`)将其反应类型取自视图的图案. 任何项目文件导出给路由的视图 `unknown` 响应,因为处理器返回视图中的内容,而不是客户端得到的内容。 文件只保留类型, 并且由 `typecheck` 在新项目中, 所以不要让它在git.

`styx routes:check` 当一个路由宣布其成功响应时失败, 这样客户端和 OpenAPI 文档就能知道它返回的内容 。 设定 `response` 选项,包括至少具有一个 2xx 状态的状态图。 服务器发送事件路线和回答204的路线被忽略. 在 CI 旁边运行 `typecheck`。 。 。 .

每个控制器都包含应用程序列表的模块,不管它是什么申报,只要有一个项目输出它的文档. 当一个装饰者添加不属于该类方法的路由,或者解答方法返回以外的东西时,一个路由类型贡献者会对它们进行打字:全球服务标记 `Http.RouteTypes`,积极发展. 流程控制器按此方式键入 `AriadneModule`。 。 。 .

```ts
@Service.register({ tags: [Http.RouteTypes], global: true, env: Environments.local })
export class PingRouteTypes implements HttpRouteTypesContributor {
    public supports(controller: Function) {
        return isPingable(controller);
    }

    public route(controller: Function, route: HttpRouteDescription, ref: HttpRouteTypeRef) {
        if (route.name === 'ping') return { response: '{ pong: true }' };
        return ref.method
            ? {
                    response: `Reply<ReturnType<${ref.method}>>`,
                    imports: [{ from: './reply', names: ['Reply'] }]
                }
            : undefined;
    }
}
```

贡献者给出了 `params`, (中文(简体) ), `query`, (中文(简体) ), `body` 财务报告和审定财务报表 `response`,并省去方法给出的部分。 当一个贡献者给出其每一种路线时,不包含文件输出的控制器,如工厂所建的一个控制器.

## 运行应用程序

其它命令都装入工程的应用程序( E)`src/app.ts` 或者说 `index.ts`在那里运行 :

```bash
styx serve
styx migration:generate
styx migration:run
styx <your command>
```

这些需要 `@elysiumjs/styx` 在项目的依赖性.

## 构建工具

项目安装时 `@elysiumjs/hephaestus` (作为依附) `hephaestus:*` 命令可通过 `styx` 没有在应用程序中添加任何内容.

## 列出命令

```bash
styx list
styx help <command>
```

## 捐款

欢迎针对错误的问题和问题 [GitHub 图像](https://github.com/na2axl/elysiumjs/issues)对拉动请求也表示欢迎;审查这些请求是为了使框架符合其设计.

## 许可证

这个项目根据Apache许可证2.0版本获得许可. 见 [自由主义](https://github.com/na2axl/elysiumjs/blob/main/LICENSE) 文档以获取更多信息.

## 常见问题

### @elysiumjs/styx 是什么？

Elysium\.js框架的命令行工具:创建项目,生成代码并运行app命令\.

### 如何安装 @elysiumjs/styx？

在项目目录运行 npm install @elysiumjs/styx，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 styx，可以用 npx styx 直接运行。

### @elysiumjs/styx 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @elysiumjs/styx 支持 ESM 还是 CommonJS？

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

### @elysiumjs/styx 可以商用吗？

@elysiumjs/styx 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @elysiumjs/styx 的下载量有多少？

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

### @elysiumjs/styx 还在维护吗？

最新版本 0\.17\.1 发布于 2026/11/13（今天）；至今共发布 32 个版本，其中过去 12 个月发布了 25 个；首次发布于 2025/04/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

