You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CLI中运行nest-commander创建的NestJS命令?

实现自定义NestJS CLI命令的执行脚本

步骤1:创建独立的CLI入口文件

在src目录下新建cli.ts,作为nest-commander的专属启动入口(和Web服务的main.ts分开):

import { CommandFactory } from 'nest-commander';
import { AppModule } from './app.module';

async function bootstrap() {
  await CommandFactory.run(AppModule);
}

bootstrap();

这个文件会通过CommandFactory自动扫描AppModule中注册的所有CLI命令。

步骤2:配置package.json的执行脚本

打开项目根目录的package.json,在scripts字段中添加自定义命令:

"scripts": {
  "start:dev": "nest start --watch",
  // 新增自定义命令脚本
  "test-command": "ts-node src/cli.ts test"
}
  • ts-node src/cli.ts:开发阶段用ts-node直接运行TS文件,无需提前编译
  • 末尾的test要和你在test.command.ts中@Command({ name: 'test' })装饰器里定义的命令名称完全一致。

如果是生产环境(已编译为JS文件),可以改成:

"test-command:prod": "node dist/cli.js test"

步骤3:验证命令执行

直接在终端运行:

yarn run test-command

如果命令需要传参,直接追加在命令后面即可:

yarn run test-command --your-param your-value

额外检查

确保你的TestCommand类已经正确注册到AppModule的providers数组中,或者通过子模块(比如CommandModule)导入到AppModule里,否则CommandFactory无法扫描到该命令。

内容的提问来源于stack exchange,提问作者delete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:27:24