A library for generating a diff object between two sets of webpack bundle stat files.
npm install @microsoft/webpack-stats-differsh
npm install @microsoft/webpack-stats-differ
`
Using Yarn:
`sh
yarn add @microsoft/webpack-stats-differ
`Usage
`typescript
import { diff, getFriendlyAssetName } from "@microsoft/webpack-stats-differ";
import * as path from "path";
import * as fs from "fs";const baselineDir = path.resolve('/baseline');
const candidateDir = path.resolve('/candidate');
// Read the contents of your webpack-generated JSON file containing statistics about the compiled modules
const webPackStatsFile = fs.readFileSync('bundle-stats.json');
const diffResult = await diff(baselineDirUnzipped,candidateDir);
const name = getFriendlyAssetName(webPackStatsFile.asset);
``Calculates the diff between two sets of bundle stats.
| Parameter | Type | Description |
| --- | --- | --- |
| baselineDir | string | Directory containing webpack stat files of the baseline |
| candidateDir | string | Directory containing webpack stat files of the candidate |
| fileFilter | string \| string\[\] | Optionally pass filter to omit certain files using globby syntax |
| filter | string \| string\[\] | Filter out certain assets for the bundle size calculation |
| remoteArtifactManifests | { baseline: string \| RemoteArtifact\[\]; candidate: string \| RemoteArtifact\[\]; hostUrl: string; } | Either a path on disk to the serialized JSON manifest or the RemoteArtifact list manifest object itself |
Returns:
Promise<FileDiffResults>
The diff object.
Returns a readable name of the asset.
| Parameter | Type | Description |
| --- | --- | --- |
| asset | Pick<Asset, "name" \| "chunkNames" \| "chunks"> | webpack stats asset |
Returns:
string
This project welcomes contributions and suggestions. Most contributions require you to
agree to a Contributor License Agreement (CLA) declaring that you have the right to,
and actually do, grant us the rights to use your contribution. For details, visit
https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need
to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the
instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct.
For more information see the Code of Conduct FAQ
or contact opencode@microsoft.com with any additional questions or comments.
MIT