@eggjs/ bin (中文(简体) )
鸡蛋开发工具, 以 奥克利夫。 。 。 .
安装
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.tstest/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 编号 : -p | Veste通过工人池处理本地的平行主义 |
--jobs 编号 : -j | 替换为 Vitest 内置的池配置 |
--auto-agent | 莫查特异性,不需要等效的活体 |
--prerequire | 使用 test/.setup.ts 设置文件代替 |
--c8 | 覆盖范围现已配置在 vitest 内部, 使用 -x 除外 |
删除的环境变量 :
| 旧环境 var | 原因 |
|---|---|
MOCHA_FILE | 莫查特异能跑道是自动探测的 |
已更改的产出格式 :
现在测试输出遵循了vitest的格式. 测试脚本中符合摩卡输出(如. "N passing")应当被更新为vitest输出(例如. "N passed") (中文(简体) ).
移徙指南:
- 替换
before()编号 :after()钩子beforeAll()编号 :afterAll()(最强烈的命名) - 直接导入 vitest 全球
.ts设置文件 :import { beforeAll, afterEach } from 'vitest' - 平面
.js测试文件可以直接使用全局文件( vitest)globals: true默认启用) - 删除
--parallel编号 :--jobs您 npm 脚本中的旗帜
为您的团队自定义蛋盒
见 https://oclif.io/docs/configuring your cli/ 互联网档案馆的存檔,存档日期2013-12-02
许可证
贡献者
制造的 贡献者-img。 。 。 .