如何使用commander生成命令

How to use commander to generate command

我正在与 commander 一起开发一个 cli 工具。我有这个 app.ts 文件。

import { Command } from 'commander';
const program = new Command();
program.version('0.0.1');

const zoneConf = program.command('zone-conf');
const generate = zoneConf.command('generate');
generate.command('tx-commands').action(() => {
    console.log('Ran `zone-conf generate tx-commands`');
});

program.parse(process.argv);

我希望当我 运行 tsc && node app.js 时,我能够执行 运行 像 zone-conf generate tx-commands 这样的命令。当我执行 运行 时,输出为 zsh: command not found: zone-conf.

这是我在 nodejs 中缺少指挥官的步骤吗?

为了让您的终端识别您的命令,您可以使用 npm link。这将为您的包创建一个全局 link。

您应该首先构建您的应用程序,然后 运行 link 命令。

在您的项目文件夹中 运行:

$ tsc
$ npm link

如果您不想保留它 linked,在您使用完它之后,您可以使用 npm uninstall 将其删除:

$ npm uninstall -g <your-package-name>

如果您不想在全球范围内 link 它,@shadowspawn 的评论应该有效:

tsc && node app.js zone-conf generate tx-commands