pnpm-cdx
Version:
Generate a CycloneDX SBOM from a PNPM Node.js project.
54 lines (41 loc) • 1.31 kB
Markdown
Generate a CycloneDX SBOM from a PNPM Node.js project.
> ⚠️ pnpm-cdx is alpha, it generate license reports for GitLab CI. CycloneDX format is work in progress. ⚠️
The pnpm-cdx package includes both a CLI and a library with commonjs and esm entrypoints. Installation is as you would expect:
**With pnpm:**
```bash
pnpm add pnpm-cdx
```
**With yarn:**
```bash
yarn add pnpm-cdx
```
**With npm:**
```bash
npm i pnpm-cdx
```
Typically in CI scenarios, you may prefer to install pnpm-cdx globally with your package managers global flag (usually `-g`), as in this contrived example adapted from this repository's [Earthly](https://earthly.dev/) [Earthfile](/Earthfile):
```earthly
validate:
FROM node:16-bullseye
WORKDIR /app
RUN npm i pnpm-cdx -g
RUN pnpm-cdx gitlab -o gl-license-report.json
SAVE ARTIFACT gl-license-report.json
```
# Usage
```typescript
import { analyseProject } from "pnpm-cdx";
(async () => {
// analyze *this* project
const analysis = await analyseProject(".")
// generate gitlab compatible license report
const report = await analysis.generateReport({
format: "gitlab-license-report-2.1",
})
// pretty print the report
console.log(JSON.stringify(report, null, 2))
})()
```