# @bpinternal/yargs-extra 中文文档

规范地址：https://npmcn.com/package/%40bpinternal/yargs-extra/

版本：0\.0\.21
npm 元数据更新时间：2026-09-02T19:11:40.363Z
中文译文更新时间：2026-11-08T13:04:10.490Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bpinternal/yargs-extra
原文对照：https://npmcn.com/package/%40bpinternal/yargs-extra/?lang=original
项目主页：https://github.com/botpress/packages#readme
源码仓库：https://github.com/botpress/packages

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：106 kB，38 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=16\.0\.0
- 运行依赖：6 个
- 首次发布：2022-06-15T17:24:25.692Z
- 最新版本发布：2025-07-18T16:10:08.005Z
- 近 30 天下载量：40925（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：21（近 12 个月 0 个）

## 中文简介

Utils 函数 杠杆 yargs.

## 安装

```sh
npm install @bpinternal/yargs-extra
```

也可以使用：`pnpm add @bpinternal/yargs-extra`、`yarn add @bpinternal/yargs-extra`、`bun add @bpinternal/yargs-extra`

## README

# 场外

图书馆很少增加 [rg](https://github.com/yargs/yargs) 包括分析环境变量和从 args 选项创建 json-schema 的能力.

## 使用量

您的类型脚本程序可能看起来像 :

```ts
import os from 'os'
import path from 'path'
import fs from 'fs'
import yargs, { asYargs, generateSchema, cleanupConfig, parseEnv } from '@bpinternal/yargs-extra'

const yargsSchema = asYargs({
  remoteUrl: {
    type: 'string',
    description: 'URL to remote server'
  },
  oauth: {
    type: 'boolean',
    description: 'Whether or not to use oauth'
  }
})

const jsonSchemaLocation = path.join(os.homedir(), '.myapp', 'myapp.config.schema.json')
const configFileLocation = path.join(process.cwd(), 'myapp.config.json')

const stringify = (x) => JSON.stringify(x, null, 2)

void yargs
  .command(
    'init',
    'Init configuration file',
    (yargs) => yargs.options({}),
    async () => {
      const jsonSchema = generateSchema(yargsSchema)
      fs.writeFileSync(jsonSchemaLocation, stringify(jsonSchema))
      fs.writeFileSync(configFileLocation, stringify({ $schema: jsonSchemaLocation }))
    }
  )
  .command(
    'build',
    'Build something',
    (yargs) => yargs.options(yargsSchema),
    async (yargsArgv) => {
      const yargsEnv = parseEnv(yargsSchema, 'MYAPP')
      const yargsFile = fs.existsSync(configFileLocation)
        ? JSON.parse(fs.readFileSync(configFileLocation, 'utf-8'))
        : undefined

      // cli args will override json config, which will also override env variables
      const resolved = cleanupConfig(yargsSchema, { ...yargsEnv, ...yargsFile, ...yargsArgv })
      console.log(resolved)

      // ...
    }
  )
  .help().argv
```

使用上面的这个程序,您可以尝试几种不同的方式传递参数:

```bash
./myapp init # will create an empty config file
code ./myapp.config.json # will open your config file in vscode with intellisense

MYAPP_REMOTE_URL=http://lol.com ./myapp build # { remoteUrl: 'http://lol.com' }
MYAPP_REMOTE_URL=http://lol.com ./myapp build --oauth # { remoteUrl: 'http://lol.com', oauth: true }
MYAPP_REMOTE_URL=http://lol.com ./myapp build --remote-url http://localhost:3100 # { remoteUrl: 'http://localhost:3100' }
```

当在 vscode 中打开配置文件时,你会得到intellisense:

![config file](https://npmcn.com/package/%40bpinternal/yargs-extra/readme.png)

## 免责声明

此软件包将在 `@bpinternal` 组织。 这个组织的所有软件包都用于 [瓶装](https://github.com/botpress/botpress) 内部的团队 并不适合我们的社区。 由于这些软件包适合我们自己的使用情况,它们可能不稳定的API,在没有警告的情况下接受中断的更改,文件很少,缺乏以社区为重点的支持。 然而,这些软件包仍然被故意公开,其重要原因如下: 我们爱开源. 因此,如果您想要安装或叉出这个软件包,就完全可以自由操作。 我们强烈建议你正确标记你的版本.

博讯工程组.

## 常见问题

### @bpinternal/yargs-extra 是什么？

Utils 函数 杠杆 yargs\.

### 如何安装 @bpinternal/yargs-extra？

在项目目录运行 npm install @bpinternal/yargs-extra，或使用 pnpm add / yarn add / bun add。

### @bpinternal/yargs-extra 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @bpinternal/yargs-extra 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @bpinternal/yargs-extra 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=16\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @bpinternal/yargs-extra 可以商用吗？

@bpinternal/yargs-extra 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @bpinternal/yargs-extra 的下载量有多少？

根据 npm 官方下载统计，@bpinternal/yargs-extra 在 2026/10/09 – 2026/11/07 这 30 天内被下载 40,925 次，日均约 1,364 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bpinternal/yargs-extra 还在维护吗？

最新版本 0\.0\.21 发布于 2025/07/19（1\.3 年前）；至今共发布 21 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/06/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

