# @appneurox/service-composition 中文文档

规范地址：https://npmcn.com/package/%40appneurox/service-composition/

版本：0\.1\.0
npm 元数据更新时间：2026-10-26T18:05:38.067Z
中文译文更新时间：2026-11-06T17:16:57.824Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40appneurox/service-composition
原文对照：https://npmcn.com/package/%40appneurox/service-composition/?lang=original
项目主页：https://github.com/APPNEURAL-Microservices/nestjs-fleet#readme
源码仓库：https://github.com/APPNEURAL-Microservices/nestjs-fleet

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

- 包体积（解压后）：42.7 kB，20 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24 \<25
- 运行依赖：0 个
- peer 依赖：@nestjs/core ^12\.2\.0，@nestjs/common ^12\.2\.0，class-validator ^0\.15\.1，@appneurox/service-runtime ^0\.1\.0
- 首次发布：2026-10-26T18:04:36.387Z
- 最新版本发布：2026-10-26T18:05:36.951Z
- 近 30 天下载量：2613（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

可导入服务模块和单进程 NestJS 组成基础.

## 安装

```sh
npm install @appneurox/service-composition
```

也可以使用：`pnpm add @appneurox/service-composition`、`yarn add @appneurox/service-composition`、`bun add @appneurox/service-composition`

## README

# 共享服务构成基础

此软件包将同一可导入的 NestJS 服务模块组成一个独立应用程序,或者由一个公共的 HTTP 听取器进行一个进程. 它使用峡谷 `@appneurox/service-runtime` 用于拖曳、认证、租户上下文、相关性、出错和关闭的软件包。 它不创建第二个 Async LocalStorage,认证装饰或运行时间复制. 在远程节点24跑道上先构建运行时间;工作空间根拥有依赖安装和锁文件.

`ServiceDefinition` 包含安全的小写服务 `slug` 与公众 `label`。 。 。 . `composeServiceModule(ModuleType, definition, ApplicationClass, options)` 接受独特的模块类和扩展的应用程序类 `BaseServiceApplication`;其动态模块输出应用程序类和稳定 `serviceApplicationToken(slug)` 符号。 应用类可以使用正常的Nest DI. 域模块不拖曳应用程序,注册全局守护,安装流程处理器,读取流程配置或打开套接字. 可选的供应商/进口选项支持明确的基础设施注入;它们不提供或核实基础设施.

```ts
@Injectable()
class VendorApplication extends BaseServiceApplication {
  constructor() { super({ slug: 'vendor-service', label: 'Vendor' }); }
}
@Module({})
class VendorModule {}
const definition = { slug: 'vendor-service', label: 'Vendor' };
const service = {
  definition,
  module: composeServiceModule(VendorModule, definition, VendorApplication),
  applicationToken: serviceApplicationToken(definition.slug),
};
```

独立主机导入 `service.module` 穿过峡谷的跑道. `createMonolithApplication({ services, config, authVerifier, logger })` 初始化而不听; `bootstrapMonolith` 打开一个主机听众 并拥有优雅的关闭。 两人都接受犬科运行时间的选择. 每个服务控制器都安装在弹簧下,例如 `/vendor-service/v1/module` 财务报告和审定财务报表 `/vendor-service/v1/execute`一个东道主运行时间服务于健康/发现和公众 `/modules` 列出元数据。 复制弹片,共享模块类,不安全的定义和不匹配的应用符号在拖放前会失败.

`BaseServiceApplication.metadata()` 报告 `BOILERPLATE`, (中文(简体) ), `businessReady: false` 财务报告和审定财务报表 `businessImplementation: not_implemented`。 。 `execute` 边界完全接受 `{ operation, payload }`。操作名称使用带有可选点、下划线或连字符分隔符的小写字母/数字,最多63个字符。 有效载荷必须是普通的JSON对象;访问器,符号,原型键,循环,稀有数组和非JSON值被拒绝. 输入限为64KiB,16个筑巢级和4096个JSON节点. 共享 `ExecuteOperationDto` 增加了HTTP验证,而应用程序再次验证直接调用.

`authorizeOperation(scope, requireTenant = true)` 仅读取 Cononic 运行时间已核实的请求上下文。 它重新检查主要住户、选定的租户成员和确切范围;单凭要求的主管从不授权。 它不验证无记名证或薄荷本金:主机真实的 `AuthVerifier` 必须首先确定这一背景。 直接信任的呼叫者必须通过同一经核实的权威边界进入. `execute` 需求 `${slug}:${operation}` ,然后返回501,因为不存在业务执行。 HTTP适配器可能还需要固定的入侵范围,例如: `${slug}:invoke`。 。 。 .

应用程序服务在单立模式下直接通过DI调用导出应用程序提供者. 独立的依赖性适配器可以执行相同的显式端口. Redis 集合、坚持、提供者客户和背景工作仍然是选择所有者执行。 这一基础包括没有Redis驱动程序、WS/gRPC监听器或准备状态索赔;这些运输需要明确的适配器、认证和生命周期测试。 它既不转换现有的82个执行或原生的54个模块,也不削减其API、数据或部署.

## 常见问题

### @appneurox/service-composition 是什么？

可导入服务模块和单进程 NestJS 组成基础\.

### 如何安装 @appneurox/service-composition？

在项目目录运行 npm install @appneurox/service-composition，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@nestjs/core（^12\.2\.0）、@nestjs/common（^12\.2\.0）、class-validator（^0\.15\.1）、@appneurox/service-runtime（^0\.1\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @appneurox/service-composition 支持 TypeScript 吗？

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

### @appneurox/service-composition 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @appneurox/service-composition 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24 \<25。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @appneurox/service-composition 可以商用吗？

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

### @appneurox/service-composition 的下载量有多少？

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

### @appneurox/service-composition 还在维护吗？

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

