首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在typescript中解析带有yargs的命令行参数

如何在typescript中解析带有yargs的命令行参数
EN

Stack Overflow用户
提问于 2017-07-13 18:09:20
回答 2查看 16.1K关注 0票数 10

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

代码语言:javascript
复制
// 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;

结果:

代码语言:javascript
复制
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.

看起来纱线在这里没有效果。

你知道怎么让它工作吗?

EN

回答 2

Stack Overflow用户

发布于 2017-07-13 18:19:35

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

不管怎么说,我想出了怎么做:

代码语言:javascript
复制
#!/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

票数 10
EN

Stack Overflow用户

发布于 2018-09-26 01:42:29

一个简约的例子

代码语言:javascript
复制
import * as yargs from 'yargs'

    let args = yargs
        .option('input', {
            alias: 'i',
            demand: true
        })
        .option('year', {
            alias: 'y',
            description: "Year number",
            demand: true
        }).argv;

    console.log(JSON.stringify(args));
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45077585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档