跳到主内容
版本:11.x

pnpm sbom

添加于:v11.0.0

为项目生成软件物料清单(SBOM)。

支持的格式:

  • CycloneDX 1.7 (JSON)
  • SPDX 2.3(JSON)

使用方法

pnpm sbom --sbom-format cyclonedx
pnpm sbom --sbom-format spdx
pnpm sbom --sbom-format cyclonedx --lockfile-only
pnpm sbom --sbom-format spdx --prod
pnpm sbom --sbom-format cyclonedx --out sbom.cdx.json
pnpm sbom --sbom-format cyclonedx --split
pnpm sbom --sbom-format cyclonedx --exclude-peers

在工作区内,pnpm sbom 支持过滤。 当选择单个工作区包时,SBOM 的根组件使用该软件包的元数据。

CycloneDX 输出会将仅可通过 devDependencies 访问的组件标记为 scope: "excluded",并添加 cdx:npm:package:development 属性。 运行时组件,包括已安装的可选依赖项,使用默认所需范围。

配置项

--sbom-format <cyclonedx|spdx>

SBOM 输出格式。 此选项为必填项。 支持的值:cyclonedxspdx

--sbom-type <library|application>

  • 默认:library

根软件包的组件类型。

--sbom-spec-version <version>

添加于:v11.1.0

  • 默认值:1.7
  • 类型:1.51.61.7

要导出的 CycloneDX 规格版本。 仅在使用 --sbom-format cyclonedx 时有效。

--lockfile-only

仅使用锁文件数据(跳过从存储中读取)。

--sbom-authors <names>

逗号分隔的 SBOM 作者列表。 在 CycloneDX 输出中写入的 metadata.authors

--sbom-supplier <name>

SBOM 供应商名称。 在 CycloneDX 输出中写入的 metadata.supplier

--out <path>

添加于:v11.8.0

将 SBOM 写入文件,而不是标准输出。

在路径中使用 %s 作为包名的占位符,并使用 %v 作为包版本的占位符。 在工作区中,包含 %s 的路径为每个选定的包写入一个 SBOM:

pnpm sbom --sbom-format cyclonedx --out out/%s.cdx.json
pnpm sbom --sbom-format cyclonedx --out out/%s-%v.cdx.json

--split

添加于:v11.8.0

为每个选定的工作区包生成单独的 SBOM。 若不使用 --out 参数,SBOM 将以 NDJSON 格式输出至标准输出,即每行一个 JSON 文档。

--split--out 结合使用时,输出路径必须包含 %s

--exclude-peers

添加于:v11.9.0

将对等依赖项从 SBOM 中排除。 仅通过这些对等依赖项访问的依赖项也会被排除在外。

这对于自动安装对等包非常有用,因为对等依赖项会被解析到锁文件中,并且在其他方​​面与常规依赖项看起来完全相同。

--prod, -P

仅包含 dependenciesoptionalDependencies

--dev, -D

仅包含 devDependencies

--no-optional

不包含 optionalDependencies

--filter <package_selector>

阅读更多有关过滤的内容。