# @cyclonedx/webpack-plugin 中文文档

规范地址：https://npmcn.com/package/%40cyclonedx/webpack-plugin/

版本：5\.3\.3
npm 元数据更新时间：2026-08-11T09:28:11.859Z
中文译文更新时间：2026-11-11T06:57:55.261Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：59.9 kB，12 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.18\.0
- 运行依赖：5 个
- peer 依赖：webpack ^5
- 首次发布：2021-09-12T04:23:21.811Z
- 最新版本发布：2026-08-11T09:28:11.496Z
- 近 30 天下载量：128228（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：62（近 12 个月 13 个）

## 中文简介

从 Webpack 项目创建 CypromiseDX 软件软件单

## 安装

```sh
npm install @cyclonedx/webpack-plugin
```

也可以使用：`pnpm add @cyclonedx/webpack-plugin`、`yarn add @cyclonedx/webpack-plugin`、`bun add @cyclonedx/webpack-plugin`

## README

# 旋风DX _网络软件包_ 插件

[![shield\_npm-version](https://img.shields.io/npm/v/%40cyclonedx%2fwebpack-plugin/latest?label=npm&logo=npm&logoColor=white "npm")](https://www.npmjs.com/package/@cyclonedx/webpack-plugin) [![shield\_gh-workflow-test](https://img.shields.io/github/actions/workflow/status/CycloneDX/cyclonedx-webpack-plugin/nodejs.yml?branch=master&logo=GitHub&logoColor=white "tests")](https://github.com/CycloneDX/cyclonedx-webpack-plugin/actions/workflows/nodejs.yml?query=branch%3Amaster) [![shield\_coverage](https://img.shields.io/codacy/coverage/100ece8926d548e99d8ca56b9d8cec78?logo=Codacy&logoColor=white "test coverage")](https://app.codacy.com/gh/CycloneDX/cyclonedx-webpack-plugin/dashboard) [![shield\_ossf-best-practices](https://img.shields.io/cii/percentage/7884?label=OpenSSF%20best%20practices "OpenSSF best practices")](https://www.bestpractices.dev/projects/7884) [![shield\_license](https://img.shields.io/github/license/CycloneDX/cyclonedx-webpack-plugin?logo=open%20source%20initiative&logoColor=white "license")](https://github.com/CycloneDX/cyclonedx-webpack-plugin/blob/master/LICENSE)  
[![shield\_website](https://img.shields.io/badge/https://-cyclonedx.org-blue.svg "homepage")](https://cyclonedx.org/) [![shield\_slack](https://img.shields.io/badge/slack-join-blue?logo=Slack&logoColor=white "slack join")](https://cyclonedx.org/slack/invite) [![shield\_groups](https://img.shields.io/badge/discussion-groups.io-blue.svg "groups discussion")](https://groups.io/g/CycloneDX) [![shield\_twitter-follow](https://img.shields.io/badge/Twitter-follow-blue?logo=Twitter&logoColor=white "twitter follow")](https://twitter.com/CycloneDX_Spec)

* * *

此插件用于 _[网络软件包](https://webpack.js.org/)_ 创建一个 _[旋风DX](https://cyclonedx.org/)_ 包含所有捆绑依赖的软件清单.  
这很可能是最准确,最完整的基于网页包的SBOM生成器.

此插件使用由 : _网络软件包_ 以创建仅包含依赖关系的依赖图 实际使用的 [树摇](https://webpack.js.org/guides/tree-shaking/)) (中文(简体) ).

生成的 SBOM 文件如下 [正式规格和标准](https://github.com/CycloneDX/specification)。 。 。 .

## 所需资源

-   _节点.js_ `>= 20.18`
-   _网络软件包_ `^5`

然而,这个插件有更古老的版本,支持

-   _节点.js_ v8.0.0 或更高级
-   _网络软件包_ v4.0.0 或 更高级

## 安装

```shell
npm i -D @cyclonedx/webpack-plugin
yarn add -D @cyclonedx/webpack-plugin
```

## 使用量

```javascript
new CycloneDxWebpackPlugin(options?: object)
```

### 选项配置( C)

| 名称 | 类型 | 默认 | 说明 |
| :-- | :-: | :-: | :-- |
| **`specVersion`** | `{string}`  
其中一个: `"1.2"`, (中文(简体) ), `"1.3"`, (中文(简体) ), `"1.4"`, (中文(简体) ), `"1.5"`, (中文(简体) ), `"1.6"`, (中文(简体) ), `"1.7"` | `"1.6"` | 哪个版本 [气旋DX光谱](https://github.com/CycloneDX/) 用来使用.  
支持的值取决于安装的依赖性 [旋风DX-javascript-图书馆](https://github.com/CycloneDX/cyclonedx-javascript-library/)。 。 。 . |
| **`reproducibleResults`** | `{boolean}` | `false` | 是否要多走一英里, 使输出可复制 .  
可复制性可能导致时间价值和随机价值的损失. |
| **`validateResults`** | `{boolean}` | `true` | 是否验证 BOM 结果 .  
如果不符合要求,则取消验证。 要求数 [过渡性可选依赖性](https://github.com/CycloneDX/cyclonedx-javascript-library#optional-dependencies)。 。 。 . |
| **`outputLocation`** | `{string}` | `"./cyclonedx"` | 将输出写入路径 。 路径相对 _网络软件包_'总输出路径. |
| **`includeWellknown`** | `{boolean}` | `true` | 是否写出 Wellknowns . |
| **`wellknownLocation`** | `{string}` | `"./.well-known"` | 写《名人录》的路径 路径相对 _网络软件包_'总输出路径. |
| **`rootComponentAutodetect`** | `{boolean}` | `true` | 是否尝试对根元件进行自动检测 .  
尝试寻找最近的 `package.json` 并且从中构建一个 CircleDX 组件,从而可以分配到 `bom.metadata.component`。 。 。 . |
| **`rootComponentType`** | `{string}` | `"application"` | 设置根组件的类型 .  
见 [有效数值列表](https://cyclonedx.org/docs/1.7/json/#metadata_component_type)。支持的值取决于 [旋风DX-javascript-图书馆](https://github.com/CycloneDX/cyclonedx-javascript-library/)语句 `ComponentType`。 。 。 . |
| **`rootComponentName`** | 选项 `{string}` | `undefined` | 若为 `rootComponentAutodetect` 的“名称” `package.json`。 。 。 . |
| **`rootComponentVersion`** | 选项 `{string}` | `undefined` | 若为 `rootComponentAutodetect` 的“版本” `package.json`。 。 。 . |
| **`rootComponentVCS`** | 选项 `{string}` | `undefined` | 若为 `rootComponentAutodetect` 已禁用或版本控制系统未在 `package.json`,然后将该值用作 URL [Root Content 的外部参考文献](https://cyclonedx.org/docs/1.7/json/#metadata_component_externalReferences) “vcs”类型. |
| **`rootComponentBuildSystem`** | 选项 `{string}` | `undefined` | 设置 URL 为 [Root Content 的外部参考文献](https://cyclonedx.org/docs/1.7/json/#metadata_component_externalReferences) 类型“构建系统”.  
这种行为是不管 `rootComponentAutodetect`状况. |
| **`collectEvidence`** | `{boolean}` | `false` | 是否收集(许可证)证据并附在由此产生的SBOM上. |

### 示例

在你身边 [网络包配置](https://webpack.js.org/configuration/) 添加 CirponDX 插件 :

```javascript
const { CycloneDxWebpackPlugin } = require('@cyclonedx/webpack-plugin');

/** @type {import('@cyclonedx/webpack-plugin').CycloneDxWebpackPluginOptions} */
const cycloneDxWebpackPluginOptions = {
  specVersion: '1.7',
  outputLocation: './bom'
}

module.exports = {
  // ...
  plugins: [
    new CycloneDxWebpackPlugin(cycloneDxWebpackPluginOptions)
  ]
}
```

参见扩展 [实例](https://github.com/CycloneDX/cyclonedx-webpack-plugin/tree/master/examples)。 。 。 .

### 对 IETF /. 熟知/ sbom 的支持

旋风DX _网络软件包_ 插件支持将 CirlowDX SBOM 放置在预定义的位置, 具体在 `/.well-known/sbom`。默认启用此选项。 行为可以通过超越值来改变 联 合 国 `includeWellknown` 财务报告和审定财务报表 `wellknownLocation`。 。 。 .  
见 [草稿- ettf- opsawg- sbom- 访问](https://datatracker.ietf.org/doc/html/draft-ietf-opsawg-sbom-access) 关于该规格的更多信息,目前是综合贸易工作队草案.

在你身边 [网络包配置](https://webpack.js.org/configuration/) 添加 CirponDX 插件 :

```javascript
const { CycloneDxWebpackPlugin } = require('@cyclonedx/webpack-plugin');

/** @type {import('@cyclonedx/webpack-plugin').CycloneDxWebpackPluginOptions} */
const cycloneDxWebpackPluginOptions = {
  includeWellknown: true,
  wellknownLocation: './.well-known'
}

module.exports = {
  // ...
  plugins: [
    new CycloneDxWebpackPlugin(cycloneDxWebpackPluginOptions)
  ]
}
```

### 以角为单位使用

_角质_ 用途 _网络软件包_ 在引擎盖下。 因此,可以通过使用 [@angular-buildingers/custom-webpack](https://www.npmjs.com/package/@angular-builders/custom-webpack)。 。 。 .  
例如: [与Angular17/webpack5的结合](https://github.com/CycloneDX/cyclonedx-webpack-plugin/tree/master/tests/_testbeds/webpack5-angular17)。 。 。 .

### 用反应

_反应_ 用途 _网络软件包_ 在引擎盖下。 因此,可以整合这个插件.  
例如: [与 React18/webpack 合并](https://github.com/CycloneDX/cyclonedx-webpack-plugin/tree/master/tests/_testbeds/webpack5-react18)。 。 。 .

### 与 Vue 一起使用

_阴道_ 用途 _网络软件包_ 在引擎盖下。 因此,可以整合这个插件.  
例如: [与 Vue2/webpack 合并 5](https://github.com/CycloneDX/cyclonedx-webpack-plugin/tree/master/tests/_testbeds/webpack5-vue2-cli-service)。 。 。 .

## 内部

这个 _网络软件包_ 插件使用 [旋风DX库](https://github.com/CycloneDX/cyclonedx-javascript-library/) 生成实际数据结构.

除了班级 `CycloneDxWebpackPlugin` 和接口 `CycloneDxWebpackPluginOptions`, (中文(简体) ),  
这个 _网络软件包_ 插件会 **没有** 披露任何额外的 _公开_ API或类 - 所有代码都是为了内部的,在版本升级时可能会不经任何通知而更改.

## 发展和贡献

随意打开问题,错误报告或拉取请求.  
见 [捐款](https://github.com/CycloneDX/cyclonedx-webpack-plugin/blob/master/CONTRIBUTING.md) 详细文件.

## 许可证

根据Apache 2.0许可证的规定,允许修改和再分配.  
见 [自由主义](https://github.com/CycloneDX/cyclonedx-webpack-plugin/blob/master/LICENSE) 完整许可证存档.

## 常见问题

### @cyclonedx/webpack-plugin 是什么？

从 Webpack 项目创建 CypromiseDX 软件软件单

### 如何安装 @cyclonedx/webpack-plugin？

在项目目录运行 npm install @cyclonedx/webpack-plugin，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：webpack（^5）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @cyclonedx/webpack-plugin 支持 TypeScript 吗？

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

### @cyclonedx/webpack-plugin 支持 ESM 还是 CommonJS？

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

### @cyclonedx/webpack-plugin 需要什么版本的 Node\.js？

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

### @cyclonedx/webpack-plugin 可以商用吗？

@cyclonedx/webpack-plugin 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @cyclonedx/webpack-plugin 的下载量有多少？

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

### @cyclonedx/webpack-plugin 还在维护吗？

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

