@flexent/ensemble

中文文档
2.22.1发布于 2026/11/13MITES Module近 30 天下载 2088

YAML 驱动的本地开发进程管理器

中文使用文档
文档目录4 节
  1. 安装
  2. 国 际
  3. 配置
  4. 程序化 API

@ flexent/ 综艺

YAML驱动的进程管理器,用于本地运行多个Node.js应用程序.

安装

npm install @flexent/ensemble

国 际

从包含 ensemble.yaml数字 :

npx ensemble

选项 :

  • -f, --file <path> 配置文件( 默认 ): ensemble.yaml (单位:克瓦德)

配置

创建 ensemble.yaml 项目根 :

apps:
  - id: api
    dir: packages/api
    entrypoint: out/bin/run.js
    args:
      - --watch
    env:
      HTTP_PORT: "32001"
      META_HTTP_PORT: "38001"
    waitForPorts:
      - HTTP_PORT
      - META_HTTP_PORT
  - id: worker
    dir: packages/worker
    entrypoint: out/bin/run.js
    dependsOn:
      - api
    waitForPorts:
      - 39001
    env:
      SKIP_STORAGE_SETUP: "true"

sharedEnv:
  LOG_PRETTY: "true"
  REGISTRY_URL: http://localhost:32003

stopGracePeriodMs: 5000

每个应用程序都用 stdio: inherit停止时,综艺节目发送 SIGTERM单 stopGracePeriodMs (默认) 5000),然后发送 SIGKILL 如果孩子还在跑.

args 是可选的。 命令行参数传递到前置进程 entrypoint。 。 。 .

stopGracePeriodMs 是可选的.

dependsOn 列出在此日期之前必须开始的应用程序 ID 。 无依赖的应用程序从配置顺序开始. 组合以反起动顺序停止应用程序 .

waitForPorts 列出 env var 名称或字形端口编号。 退出后, 综艺将等待每个端口接受 TCP 连接 127.0.0.1 在程序被视为启动之前。 Env var 名称由 app 合并的 env 解决(sharedEnv,然后每个应用程序 env) (中文(简体) ). 与 dependsOn 当受抚养人等待受抚养人听话的时候.

sharedEnv 被合并为每个前置应用的环境。 每个应用程序 env 覆盖共享的值。 综艺母进程没有被修改.

程序化 API

import { Ensemble } from '@flexent/ensemble';

const ensemble = new Ensemble();
await ensemble.resolve('path/to/ensemble.yaml');
await ensemble.start('api');
await ensemble.stop('api');
// OR
await ensemble.startAll();
await ensemble.stopAll();

版本与发布记录

@flexent/ensemble 共发布 27 个版本,首次发布于 2026/05/21;过去 12 个月发布了 27 个版本。

版本发布日期距今
2.22.1latest2026/11/132 天前
2.22.02026/11/132 天前
2.21.02026/11/132 天前
2.20.22026/11/133 天前
2.20.12026/11/115 天前
2.20.02026/11/069 天前

关于 @flexent/ensemble 的常见问题

@flexent/ensemble 是什么?

YAML 驱动的本地开发进程管理器

如何安装 @flexent/ensemble?

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

@flexent/ensemble 支持 TypeScript 吗?

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

@flexent/ensemble 支持 ESM 还是 CommonJS?

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

@flexent/ensemble 可以商用吗?

@flexent/ensemble 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@flexent/ensemble 的下载量有多少?

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

@flexent/ensemble 还在维护吗?

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