The bundle analyzer is an importable library and CLI for Codecov bundle analysis. It is designed for users who operate without a standard bundler that is otherwise supported by Codecov's bundler plugins.
The plugin does not support code coverage, see our docs to set up coverage today!
Using npm:
npm install @codecov/bundle-analyzer --save-dev
Using yarn:
yarn add @codecov/bundle-analyzer --dev
Using pnpm:
pnpm add @codecov/bundle-analyzer --save-dev
This example shows how the package can be imported as a library.
// analyze.js
const { createAndUploadReport } = require("@codecov/bundle-analyzer");
const buildDirs = ["/path/to/build"];
const coreOpts = {
  dryRun: true,
  uploadToken: "your-upload-token",
  retryCount: 3,
  apiUrl: "https://api.codecov.io",
  bundleName: "@codecov/example-bundle-analyzer-cjs",
  enableBundleAnalysis: true,
  debug: true,
};
const bundleAnalyzerOpts = {
  beforeReportUpload: async (original) => original,
  ignorePatterns: ["*.map"],
  normalizeAssetsPattern: "[name]-[hash].js",
};
createAndUploadReport(buildDirs, coreOpts, bundleAnalyzerOpts)
  .then((reportAsJson) =>
    console.log(`Report successfully generated and uploaded: ${reportAsJson}`),
  )
  .catch((error) =>
    console.error("Failed to generate or upload report:", error),
  );
This example shows how the package can be used as a CLI.
npx @codecov/bundle-analyzer ./dist --bundle-name=my-identifier --upload-token=abcd --dry-run
[OPTIONAL] - A config file can be passed for any extended options matching those described here.
npx @codecov/bundle-analyzer ./dist --bundle-name=my-identifier --upload-token=abcd --dry-run --config-file=./config.json
// config.json
{
  "gitService": "github",
  "oidc": {
    "useGitHubOIDC": false
  }
}
The CLI tool supports the following operating systems: