@nilejs/cli

中文文档
1.0.2发布于 2026/11/02ES Module

用于搭建和生成Nile后端项目的CLI

中文使用文档
文档目录9 节
  1. 创建一个项目
  2. 生成代码
  3. 服务
  4. 行动
  5. 模式和类型
  6. 电流起动器
  7. 编码助理
  8. 要求
  9. 许可证

@nilejs / cli

NPM Version

创建 尼罗河Js 项目和生成服务、操作和模式。

创建一个项目

bunx @nilejs/cli new my-app
cd my-app
bun install
cp .env.example .env
bun run dev

服务器启动于 http://localhost:8000。启动器将其数据存储在嵌入式PGlite数据库中,因此不需要安装数据库服务器。这个 入门指南 一步一步地通过启动器。

启动器包括:

  • src/index.ts:在Bun的原生HTTP服务器上的服务器入口点,带有记录器和 onBoot 模式推
  • src/db/: PGlite和Drizzle客户端 tasks 桌子和a taskModel 建立与 createModel
  • src/services/的显式注册表和域入口点 tasks 具有创建、列表、获取、更新和删除操作的服务
  • Dockerfile, docker-compose.yml 和 docker-compose.dev.yml 对于容器部署
  • drizzle.config.ts, .env.example, tsconfig.json 和 package.json

生成代码

从项目根目录运行生成器。起动器的 gen 脚本为您调用CLI。

命令描述
bun run gen service <name>添加带有示例操作的服务
bun run gen action <service> <name>向现有服务添加操作
bun run gen action <service> <name> --folder在其自己的文件夹中添加操作,用于私有助手模块
bun run gen schema从你的动作中生成Zod模式和TypeScript类型

generate 还有别名 gen,所以 bunx @nilejs/cli gen service users 在起动器外工作。

服务

bun run gen service users

创建:

src/services/users/
  actions/sample.ts   Sample action with a schema, an input type and a named handler
  index.ts            Registers the service and its public actions

命令行提示是否注册该服务 src/services/services.config.ts。如果您拒绝,它将打印您自己添加的行。

行动

bun run gen action users get-user

创建 src/services/users/actions/get-user.ts:

import { createAction } from "@nilejs/nile";
import { Ok } from "@nilejs/nile/fp";
import z from "zod";

const getUserSchema = z.object({
  // Describe the input this action accepts
});

type GetUserInput = z.infer<typeof getUserSchema>;

const getUserHandler = async (input: GetUserInput) => {
  // Implement users.get-user here
  return Ok({ result: input });
};

export const getUserAction = createAction<GetUserInput>({
  name: "get-user",
  description: "GetUser action for users",
  validation: getUserSchema,
  handler: getUserHandler,
});

Kebab-case名称变成camelCase变量和PascalCase类型。通过导入来注册操作 src/services/users/index.ts 并将其添加到服务中 actions 列表。根注册中心导入服务,而不是单个操作。

模式和类型

bun run gen schema

中读取每个操作的验证模式 src/services/services.config.ts 并写道:

  • src/generated/schemas.ts:命名的Zod模式,例如 tasksCreateSchema
  • src/generated/types.ts:输入类型,如 TasksCreatePayload
国旗描述
-e, --entry <path>服务配置的路径(默认检测)
-o, --output <path>输出目录(默认: src/generated)

中包含每个已注册的操作 ServicePayloads。没有验证模式的操作接受对象有效负载(Record<string, unknown>),所以诸如 tasks.list 可以用 {}。此回退不添加服务器端验证。不能转换的模式将单独报告。与前端共享生成的文件,以使用与服务器相同的规则验证表单。

电流起动器

CLI 1.0.2的目标是尼罗河 ^1.0.4、Zod 4、TypeScript 7和Drizzle模型助手。生成的布局通过了Nile严格的启动检查。数据库设置返回一个结果,并防止启动失败;在关闭PGlite之前,关闭耗尽了Nile的工作。辅助程序如下所示 utils.createModel,以及Result helper来自 @nilejs/nile/fp.

当CLI更新时,现有的应用程序不会被重写。对于较老的初学者,添加一个服务入口点 src/services/<domain>/index.ts,在那里注册它的操作,并从中导入该服务 services.config.ts. 尼罗河迁徙笔记 描述当前的错误和启动行为。

编码助理

启动器包括 SKILL.md 使用当前的Nile操作模式、服务布局、Results、访问策略和客户端调用。让你的助手在更改后端之前阅读它。在更新了Nile之后,使用在 node_modules/@nilejs/nile/SKILL.md.

要求

  • 包子 1.4.2或更高版本。发令员跑在小面包上,然后 gen schema 使用Bun导入您的服务。

许可证

麻省理工学院

版本与发布记录

@nilejs/cli 共发布 10 个版本,首次发布于 2026/02/28;过去 12 个月发布了 10 个版本。

版本发布日期距今
1.0.2latest2026/11/021 天前
1.0.12026/11/021 天前
1.0.02026/10/249 天前
0.0.72026/04/196 个月前
0.0.62026/04/176 个月前
0.0.52026/03/307 个月前

关于 @nilejs/cli 的常见问题

@nilejs/cli 是什么?

用于搭建和生成Nile后端项目的CLI

如何安装 @nilejs/cli?

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

@nilejs/cli 支持 TypeScript 吗?

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

@nilejs/cli 支持 ESM 还是 CommonJS?

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

@nilejs/cli 可以商用吗?

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

@nilejs/cli 还在维护吗?

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