gpt4 book ai didi

node.js - 如何在 typescript 中使用 yargs 解析命令行参数

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:28 30 4
gpt4 key购买 nike

这是我尝试过的(代码改编自 yargs github 自述文件中示例的代码):

// main.ts

import {Argv} from "yargs";


console.info(`CLI starter.`);

function serve(port: string) {
console.info(`Serve on port ${port}.`);
}

require('yargs')
.command('serve', "Start the server.", (yargs: Argv) => {
yargs.option('port', {
describe: "Port to bind on",
default: "5000",
}).option('verbose', {
alias: 'v',
default: false,
})
}, (args: any) => {
if (args.verbose) {
console.info("Starting the server...");
}
serve(args.port);
}).argv;

结果:

npm run-script build; node build/main.js --port=432 --verbose

> typescript-cli-starter@0.0.1 build /Users/kaiyin/WebstormProjects/typescript-cli-starter
> tsc -p .

CLI starter.

看起来 yargs 在这里没有效果。

知道如何让它工作吗?

最佳答案

我改编了 yargs github 自述文件中示例的代码,结果发现它并不是一个完整的示例。 ¯_(ツ)_/¯

无论如何,我想出了办法:

#!/usr/bin/env node

import yargs, {Argv} from "yargs";

let argv = yargs
.command('serve', "Start the server.", (yargs: Argv) => {
return yargs.option('port', {
describe: "Port to bind on",
default: "5000",
}).option('verbose', {
alias: 'v',
default: false,
})
}).argv;

if (argv.verbose) {
console.info("Verbose mode on.");
}

serve(argv.port);

function serve(port: string) {
console.info(`Serve on port ${port}.`);
}

您可以在此处找到完整的 typescript-cli-starter 存储库:https://github.com/kindlychung/typescript-cli-starter

关于node.js - 如何在 typescript 中使用 yargs 解析命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45077585/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com