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 输出格式。 此选项为必填项。 支持的值:cyclonedx、spdx。
--sbom-type <library|application>
- 默认:library
根软件包的组件类型。
--sbom-spec-version <version>
添加于:v11.1.0
- 默认值:1.7
- 类型:1.5, 1.6, 1.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
仅包含 dependencies 和 optionalDependencies。
--dev, -D
仅包含 devDependencies。
--no-optional
不包含 optionalDependencies。