# @eclipse-dash/nodejs-wrapper 中文文档

规范地址：https://npmcn.com/package/%40eclipse-dash/nodejs-wrapper/

版本：0\.0\.1
npm 元数据更新时间：2024-01-29T14:54:36.314Z
中文译文更新时间：2026-11-13T05:42:27.841Z
软件包许可：EPL-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40eclipse-dash/nodejs-wrapper
原文对照：https://npmcn.com/package/%40eclipse-dash/nodejs-wrapper/?lang=original
项目主页：https://github.com/eclipse-dash/nodejs-wrapper#readme
源码仓库：https://github.com/eclipse-dash/nodejs-wrapper

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

- 包体积（解压后）：51.1 kB，9 个文件
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2024-01-29T14:54:35.736Z
- 最新版本发布：2024-01-29T14:54:35.993Z
- 近 30 天下载量：23890（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

破折号许可证的节点.js包装器,使JS/TS Eclipse基金会项目更容易进行许可证检查

## 安装

```sh
npm install @eclipse-dash/nodejs-wrapper
```

也可以使用：`pnpm add @eclipse-dash/nodejs-wrapper`、`yarn add @eclipse-dash/nodejs-wrapper`、`bun add @eclipse-dash/nodejs-wrapper`

## README

# Eclipse 破折号许可证节点

这个包装器可以方便地整合和运行 Eclipse [Dash 许可证](https://github.com/eclipse/dash-licenses) Eclipse 基金会项目存储器中的工具,包括本地和GitHub上的CI(即Pull Evolutions). 这样做是及早捕获任何不兼容或许可证不明确的3PP组件的最佳办法。 可以选择, `dash-licenses` 可以运行在 `automatic IP review mode`,以 Eclipse Foundation Gitlab 为例,自动创建 IP Check 门票,每3PP 组件中有一个失败的门票,供进一步检查. 这些入场券往往可以在几分钟内自动获得批准.

## 运行时间要求

-   调用 `bash`
-   `node.js` 已安装 `node` 可执行文件在路径中
-   在 Linux (测试) 上, 可能使用 Windows 子系统为 Linux (WSL) 在 mac 和 Windows 上工作
-   要运行 `dash-licenses`:JDK或JRE 11或以后安装 `java` 可执行文件在路径中
-   要运行 `dash-licenses` 内 [自动审查模式](https://github.com/eclipse/dash-licenses#automatic-ip-team-review-requests)数字 :
    -   由Eclipse项目参与者在Eclipse Foundation Gitlab上生成的 PAT(个人访问托肯)
    -   本地运行: PAT 需要设置在环境变量中 `DASH_TOKEN`例如. `export DASH_TOKEN=<PAT>`
    -   GitHub 工作流程运行: PAT 需要设置为 [GitHub 密钥](https://docs.github.com/en/codespaces/managing-codespaces-for-your-organization/managing-secrets-for-your-repository-and-organization-for-github-codespaces#adding-secrets-for-a-repository),然后在 GitHub 工作流程中用于定义环境变量 `DASH_TOKEN`注: GitHub [对于来自叉子的 PR , 无法获取机密](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#using-secrets-in-a-workflow). 这意味着"自动IP审查模式"不能被用在GitHub上,用于来自非承诺者的PR或来自来自来自分叉中分支的被承诺者的PR.

## 如何安装和使用

从此寄存器生成的 npm 软件包包含 `dash-licenses-wrapper.js` 使用脚本 `dash-licenses` under-the-hood,一个使用包和一些示例配置文件的 GitHub 工作流程实例.

要将此软件包作为“ devdependency” 安装到您的项目中, 请根据项目 npm 客户端使用您项目根部的以下命令之一 :

```bash
# yarn:
# note: if prompted to do so, you may need to add option "--ignore-workspace-root-check"
yarn add @eclipse-dash/nodejs-wrapper --dev

# npm:
npm install @eclipse-dash/nodejs-wrapper --save-dev
```

安装后,您可以从 repo 根进行许可证检查,其命令如下:

```bash
  # using yarn lock file as input (default)
  npx dash-licenses-wrapper

  # using npm lock file as input
  npx dash-licenses-wrapper --inputFile=./package-lock.json
```

要得到帮助 使用包装,做:

```bash
  npx dash-licenses-wrapper --help
```

可选择添加一个或多个 `scripts` 项目根中的条目 `package.json`那叫"包装" 和通缉犯辩论 例如:

```json
"scripts": {
  "license:check": "npm run dash-licenses-wrapper --inputFile=./package-lock.json",
  "license:check:review": "npm run dash-licenses-wrapper --inputFile=./package-lock.json --review --project=ecd.cdt-cloud",
```

可以使用配置文件,而不是在 CLI 上添加所有想要的选项或 `scripts` 输入。 关于配置文件的细节,见下文一节.

```bash
npx dash-licenses-wrapper --configFile=./configs/license-check-config.json
```

## 配置文件

可以使用配置文件 。 其中所定义的值将覆盖包设默认值,自身会被CLI所覆盖.

`dashLicensesConfig.json`数字 :

```json
{
    "project": "ecd.theia",
    "review": true,
    "inputFile": "./package-lock.json",
    "batch": "50",
    "timeout": "240",
    "exclusionsFile": "configs/license-check-exclusions.json",
    "summaryFile": "dash-licenses-summary.txt"
}
```

配置文件可以这样使用 :

```bash
 npx dash-licenses-wrapper --configFile=configs/dashLicensesConfig.json
```

## 微调结果: 排除文件

`dash-licenses` 目的是帮助Eclipse基金会的项目管理他们的3PP的许可证方面,而不是绝对的"真理仲裁者". 因此,一个项目可能希望一些据报需要更多审查的依赖性立即被"忽略". 这意味着 `dash-licenses` 将仍然处理这些,但包件不会把它们算作未通过检查。 如果只报告被排除在外的 3PP `dash-licenses` 由于需要进一步检查, 包装将返回一个成功状态代码.

这个 `exclusions file` 包含每行一个依赖性,并附有一个可选的注释,可用于跟踪排除依赖性的理由,从而避免许可证检查失败. 例如,在审查中但据信拥有相容许可证的依赖性方面,这一点可能是有益的.

```json
{
  "<3PP as reported by dash-licenses>": "<comment>",
  "<another 3PP>": "<comment>"
}
```

实例情景:一个重要的拉动请求(PR)增加了3PP的依赖性,项目认为其许可证是相容的,但为此 `dash-licenses` 不同意(例如因为得分低). 依赖性被提交IP团队进行进一步分析,但不能被自动批准,很快. 在此期间,为了避免延迟合并重要的公关或合并,并使得"License Check"的CI工作失败,直到依赖关系得到正式批准,可以将其添加到其中 `exclusions file`数字 :

假设项目排除文件是 `configs/license-check-exclusions.json`

添加以下条目: 第一个字段是所报的 3PP `dash-licenses` 而第二个字段是一个可选的注释,可以用来跟踪排除依赖性不成功许可证检查的原因. 例如:

```json
"npm/npmjs/-/<some dependency>/1.2.3": "We believe this dependency is license-compatible. Under review by the IP team to confirm: https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/555555",
```

然后可以使用 CLI 参数调用包装器 `--exclusions` 指着 `exclusions` 文件, 像这样 :

```bash
npx dash-licenses-wrapper --inputFile=./package-lock.json --exclusions=configs/license-check-exclusions.json
```

排除文件 : `<repo_root>/dependency-check-baseline.json`

## GitHub 工作流程

目录中提供了运行许可证检查的示例工作流程 `examples` (默认情况下) `node_modules/@eclipse-dash/nodejs-wrapper/examples/license-check-workflow.yml`) (中文(简体) ). 它可以复制到 GitHub 项目的目录 `<repo root>/.github/workflows` 并适应给定项目.

如果项目增加了 `scripts` 在根中输入 `package.json` 以运行许可证检查,该检查可用于代替 `npx dash-licenses-wrapper [...]`. e.g. (中文(简体) ). `yarn license:check [...]`。 。 。 .

运行效率很高 `dash-licenses` 内 `review` cI中模式,可以自动创建 IP 检查票,每个3PP 组件有一个失败检查. 要做到这一点,一个承诺者(拥有写入权限的用户)需要设置一个包含 Eclipse Foundation Gitlab PAT 的 GitHub 秘密,并在工作流程中使用它,以便环境可变 `DASH_TOKEN` 被设定与它。 请注意,出于安全原因,GitHub只允许在PR作者是罪犯时使用这个秘密. 如果不是那样的话 包装器会掉到不使用 `review` 模式,IP票应当根据需要手动打开.

## 鸣谢

这项工作的基础是: [Eclipse Theia 主 git 仓库](https://github.com/eclipse-theia/theia)爱立信等人的作品. 主要为脚本 [检查 3pp 许可证.js](https://github.com/eclipse-theia/theia/blob/master/scripts/check_3pp_licenses.js)。 。 。 .

## 常见问题

### @eclipse-dash/nodejs-wrapper 是什么？

破折号许可证的节点\.js包装器,使JS/TS Eclipse基金会项目更容易进行许可证检查

### 如何安装 @eclipse-dash/nodejs-wrapper？

在项目目录运行 npm install @eclipse-dash/nodejs-wrapper，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dash-licenses-wrapper，可以用 npx dash-licenses-wrapper 直接运行。

### @eclipse-dash/nodejs-wrapper 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/eclipse-dash\_\_nodejs-wrapper 是否存在。

### @eclipse-dash/nodejs-wrapper 可以商用吗？

@eclipse-dash/nodejs-wrapper 使用 EPL-2\.0 许可。声明的许可为 EPL-2\.0，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @eclipse-dash/nodejs-wrapper 的下载量有多少？

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

### @eclipse-dash/nodejs-wrapper 还在维护吗？

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

