# @nilejs/cli 中文文档

规范地址：https://npmcn.com/package/%40nilejs/cli/

版本：1\.0\.2
npm 元数据更新时间：2026-11-01T23:01:36.402Z
中文译文更新时间：2026-11-02T00:28:52.597Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40nilejs/cli
原文对照：https://npmcn.com/package/%40nilejs/cli/?lang=original

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

- 包体积（解压后）：70.6 kB，28 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：3 个
- 首次发布：2026-02-28T00:56:57.928Z
- 最新版本发布：2026-11-01T23:01:36.246Z
- 已发布版本数：10（近 12 个月 10 个）

## 中文简介

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

## 安装

```sh
npm install @nilejs/cli
```

也可以使用：`pnpm add @nilejs/cli`、`yarn add @nilejs/cli`、`bun add @nilejs/cli`

## README

# @nilejs / cli

[![NPM Version](https://img.shields.io/npm/v/@nilejs/cli.svg)](https://www.npmjs.com/package/@nilejs/cli)

创建 [尼罗河Js](https://nile-js.github.io/nile/) 项目和生成服务、操作和模式。

## 创建一个项目

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

服务器启动于 `http://localhost:8000`。启动器将其数据存储在嵌入式PGlite数据库中，因此不需要安装数据库服务器。这个 [入门指南](https://nile-js.github.io/nile/guide/start/getting-started/) 一步一步地通过启动器。

启动器包括：

-   `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` 在起动器外工作。

### 服务

```bash
bun run gen service users
```

创建:

```text
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`。如果您拒绝，它将打印您自己添加的行。

### 行动

```bash
bun run gen action users get-user
```

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

```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` 列表。根注册中心导入服务，而不是单个操作。

### 模式和类型

```bash
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`. [尼罗河迁徙笔记](https://github.com/nile-js/nile/blob/main/packages/nile/docs/release-migration.md) 描述当前的错误和启动行为。

## 编码助理

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

## 要求

-   [包子](https://bun.sh/) 1.4.2或更高版本。发令员跑在小面包上，然后 `gen schema` 使用Bun导入您的服务。

## 许可证

麻省理工学院

## 常见问题

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

