@eggjs/bin

中文文档
8.1.0发布于 2026/10/07MITTypeScriptES Module构建来源已验证近 30 天下载 3482

鸡蛋开发工具

中文使用文档
文档目录12 节
  1. 安装
  2. 使用量
  3. 命令
  4. 备忘
  5. 测试
  6. 曲线
  7. 捆绑
  8. 中断更改( v8)
  9. 从莫查到维特
  10. 为您的团队自定义蛋盒
  11. 许可证
  12. 贡献者

@eggjs/ bin (中文(简体) )

NPM version Known Vulnerabilities npm download Node.js Version PRs Welcome

鸡蛋开发工具, 以 奥克利夫。 。 。 .


安装

npm i @eggjs/bin --save-dev

使用量

添加 egg-bin 改为 package.json 脚本 :

{
  "scripts": {
    "dev": "egg-bin dev",
    "test-local": "egg-bin test",
    "test": "npm run lint -- --fix && npm run test-local",
    "cov": "egg-bin cov",
    "bundle": "egg-bin bundle",
    "lint": "eslint .",
    "ci": "npm run lint && npm run cov"
  }
}

命令

所有命令都支持这些特定选项:

  • --inspect
  • --inspect-brk
  • --typescript 编号 : --ts 启用打字符支持。 自动检测从 package.json是因为 pkg.egg.typescript, (中文(简体) ), 或者说 pkg.dependencies.typescript编号 :pkg.devDependencies.typescript。 。 。 .
  • --base 编号 : --baseDir 应用程序的根路径, 默认为 process.cwd()。 。 。 .
  • --require 将添加到 execArgv,支持多个。 也从 package.json是因为 pkg.egg.require
  • --dry-run 编号 : -d 无论测试命令是否被干燥, 只要显示命令
egg-bin [command] --inspect
egg-bin [command] --inspect-brk
egg-bin [command] --typescript
egg-bin [command] --base /foo/bar

备忘

启动 Dev 集群 local 它会开始一个主人,一个特工和一个工人.

egg-bin dev

dev 选项

  • --framework 蛋网框架根路径.
  • --port 服务器端口。 未指明的,以下列顺序获取端口: 1 鸡蛋.js 配置 config/config.*.js > 翻译: process.env.EGG_BIN_DEFAULT_PORT > 7001 > 其他可用端口.
  • --workers 工作流程编号,默认为 1 本地模式下的工人.
  • --sticky 启动粘接集群服务器,默认为 false。 。 。 .

在 VSCode 上调试/检查

创建 .vscode/launch.json 文件 :

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Egg Debug",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev", "--", "--inspect-brk"],
      "console": "integratedTerminal",
      "restart": true,
      "autoAttachChildProcesses": true
    },
    {
      "type": "node",
      "request": "launch",
      "name": "Egg Test",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "test-local", "--", "--inspect-brk"],
      "autoAttachChildProcesses": true
    }
  ]
}

测试

使用 测试 5 进行测试。 Vitest 4不再被支持.

egg-bin test [...files] [options]
  • files 是可选的,默认为 test/**/*.test.ts
  • test/fixtures, (中文(简体) ), test/node_modules 总是被排除在外.

自动加载 test/.setup.ts

若为 test/.setup.ts (或 .setup.js) 存在,它将自动添加作为第一个vitest setupFile。 。 。 .

test
  ├── .setup.ts
  └── foo.test.ts

自动插入 @eggjs/mock/setup_vitest

对于蛋的应用, @eggjs/mock/setup_vitest 当 @eggjs/mock 安装、处理应用程序生命周期(beforeAll 编号 : afterEach 编号 : afterAll) (中文(简体) ).

自动使用 @eggjs/tegg-vitest/runner

若为 @eggjs/tegg-vitest 安装在工程中,其跑道被自动检测并注入到vitest配置中.

测试选项

  • --timeout 编号 : -t 毫秒,默认为 60000
  • --no-timeout 禁用超时
  • --grep 编号 : -g 只运行测试匹配模式
  • --bail 编号 : -b 第一次测试失败后停止
  • --changed 编号 : -c 只运行已更改文件的测试( 匹配) test/**/*.test.(js|ts)(中文(简体) )
  • --watch 编号 : -w 在监视模式下运行

测试环境

你可以设置 TESTS env 以指定测试文件,支持逗号分隔的 glob 模式.

TESTS=test/a.test.ts egg-bin test

记者可以设置为 TEST_REPORTER env(任何vitest reporter),默认是 default。 。 。 .

TEST_REPORTER=json 将报告写入 .vitest/json/output.json 在应用程序目录中.

TEST_REPORTER=verbose egg-bin test

测试超时可以设置为 TEST_TIMEOUT env, 默认为 60000 m.

TEST_TIMEOUT=2000 egg-bin test

曲线

使用 测试 与 v8 覆盖率 运行代码覆盖。 全部支持 test 选项.

报道报告写给 coverage/ 并包括: text-summary, (中文(简体) ), json-summary, (中文(简体) ), json, (中文(简体) ), lcov, (中文(简体) ), cobertura。 。 。 .

cov 选项

  • -x 添加 glob 模式以排除覆盖, 支持多个
  • 也支持上面所有测试选项.

cov 环境

你可以设置 COV_EXCLUDES env 添加被遮蔽的图案,以排除覆盖(comma-separated).

模式与应用程序目录相匹配。 绝对路径和目录模式,例如 ignore/ 也得到支持.

COV_EXCLUDES="app/plugins/c*,app/autocreate/**" egg-bin cov

捆绑

将蛋类应用程序装入可部署文物 @eggjs/egg-bundler。 。 。 .

egg-bin bundle
egg-bin bundle --output ./dist-bundle
egg-bin bundle --mode development
egg-bin bundle --framework egg --output ./out
egg-bin bundle --pack-alias some-package=./node_modules/some-package/index.js

命令将捆绑写入 ./dist-bundle 默认。 生成的 文物可以从输出目录中的节点开始 :

cd dist-bundle
node worker.js

捆绑选项

  • --output 编号 : -o 输出目录,默认为 ./dist-bundle
  • --manifest 路径到 manifest.json默认为 <baseDir>/.egg/manifest.json
  • --framework 编号 : -f 框架包指定符,默认为 package.json#egg.framework 或者说 egg。绝对框架路径不是 由捆绑的运行时间支持.
  • --mode 构建模式, production 或者说 development默认为 production
  • --force-external 总是保留外部的软件包名称,支持多个
  • --inline-external 强制内入的软件包名称,支持多个
  • --pack-alias @utoo/pack 解析别名 <specifier>=<target> 表单, 支持多个。 点相对目标,如 ./target.js 财务报告和审定财务报表 ../target.js 从应用程序基础目录中解析

应用程序中也可以执行套装化名 module.yml数字 :

bundle:
  pack:
    resolve:
      alias:
        some-package: ./node_modules/some-package/index.js

module.yml 化名使用的目标分辨率规则与 --pack-alias。 。 。 . 如果在两地配置了相同的别名,则明确的CLI --pack-alias 数值胜出.

见 @eggjs/egg-bundler 方案辅助项目 和产出结构.

中断更改( v8)

从莫查到维特

这个 test 财务报告和审定财务报表 cov 命令现在使用 测试 改为 摩诃迦叶。这带来了本地 TypeScript 支持, 更快的执行, 以及内置的监视模式, 但删除一些 Mocha 特定的选项 :

删除的旗帜 :

旧旗原因
--parallel 编号 : -pVeste通过工人池处理本地的平行主义
--jobs 编号 : -j替换为 Vitest 内置的池配置
--auto-agent莫查特异性,不需要等效的活体
--prerequire使用 test/.setup.ts 设置文件代替
--c8覆盖范围现已配置在 vitest 内部, 使用 -x 除外

删除的环境变量 :

旧环境 var原因
MOCHA_FILE莫查特异能跑道是自动探测的

已更改的产出格式 :

现在测试输出遵循了vitest的格式. 测试脚本中符合摩卡输出(如. "N passing")应当被更新为vitest输出(例如. "N passed") (中文(简体) ).

移徙指南:

  1. 替换 before() 编号 : after() 钩子 beforeAll() 编号 : afterAll() (最强烈的命名)
  2. 直接导入 vitest 全球 .ts 设置文件 : import { beforeAll, afterEach } from 'vitest'
  3. 平面 .js 测试文件可以直接使用全局文件( vitest) globals: true 默认启用)
  4. 删除 --parallel 编号 : --jobs 您 npm 脚本中的旗帜

为您的团队自定义蛋盒

见 https://oclif.io/docs/configuring your cli/ 互联网档案馆的存檔,存档日期2013-12-02

许可证

麻省理工学院

贡献者

Contributors

制造的 贡献者-img。 。 。 .

版本与发布记录

@eggjs/bin 共发布 74 个版本,首次发布于 2024/12/24;过去 12 个月发布了 33 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.1.0latest2026/10/071 个月前
8.0.22026/10/061 个月前
8.0.2-rc.1rc2026/10/061 个月前
8.0.2-rc.02026/09/231 个月前
8.0.2-beta.27beta2026/09/201 个月前
8.0.2-beta.262026/08/073 个月前

关于 @eggjs/bin 的常见问题

@eggjs/bin 是什么?

鸡蛋开发工具

如何安装 @eggjs/bin?

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

@eggjs/bin 支持 TypeScript 吗?

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

@eggjs/bin 支持 ESM 还是 CommonJS?

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

@eggjs/bin 需要什么版本的 Node.js?

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

@eggjs/bin 可以商用吗?

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

@eggjs/bin 的下载量有多少?

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

@eggjs/bin 还在维护吗?

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