@elysiumjs/styx

中文文档
0.17.1发布于 2026/11/13Apache-2.0TypeScriptES Module近 30 天下载 3676

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

中文使用文档
文档目录9 节
  1. 安装
  2. 创建项目
  3. 生成代码
  4. 类型客户端
  5. 运行应用程序
  6. 构建工具
  7. 列出命令
  8. 捐款
  9. 许可证

@elysiumjs/styx (英语)

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

安装

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

bun add -g @elysiumjs/styx

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

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

创建项目

styx create my-app

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

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

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

生成代码

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

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,对于伊甸园:

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。 。 。 .

@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在那里运行 :

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

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

构建工具

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

列出命令

styx list
styx help <command>

捐款

欢迎针对错误的问题和问题 GitHub 图像对拉动请求也表示欢迎;审查这些请求是为了使框架符合其设计.

许可证

这个项目根据Apache许可证2.0版本获得许可. 见 自由主义 文档以获取更多信息.

版本与发布记录

@elysiumjs/styx 共发布 32 个版本,首次发布于 2025/04/25;过去 12 个月发布了 25 个版本。

版本发布日期距今
0.17.1latest2026/11/13今天
0.17.02026/11/13今天
0.16.02026/11/13今天
0.15.02026/11/121 天前
0.14.22026/11/112 天前
0.14.12026/11/112 天前

关于 @elysiumjs/styx 的常见问题

@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 和提交记录判断。