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

如何使用yargs获取排除'._'和'.$0'之外的所有命令行参数

解决方式

有两种常用的实现方案,其中ES6解构的方式最通用,不需要依赖yargs的特定版本:

1. 直接用ES6解构赋值

拿到yargs返回的参数对象后,直接解构剔除_和$0两个内置字段即可:

const yargs = require('yargs/yargs')
const { hideBin } = require('yargs/helpers')

const argv = yargs(hideBin(process.argv)).parse()
// 提取除了_、$0之外的所有字段到cleanArgs
const { _, $0, ...cleanArgs } = argv

console.log(cleanArgs)

运行你的示例命令node index.js default --optipn1=true --option2=false --custom,输出的cleanArgs就是你要的结果:

{
  optipn1: 'true',
  option2: 'false',
  custom: true
}

2. yargs内置配置配合处理

yargs v16及以上版本支持解析配置,你可以在初始化时配置解析规则减少手动处理的步骤:

const argv = yargs(hideBin(process.argv))
  .parserConfiguration({
    // 配置解析时自动处理内置字段
    'populate--': false
  })
  .parse()
const { _, ...cleanArgs } = argv

这两种方式都可以实现需求,第一种不需要记yargs的配置规则,通用性更强,更推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:39:02