Use webpack stats file and self created files stats file to compare between states of the package, and comment on GitHub pull requests
Create webpack stats
webpack --config <CONFIG_FILE> --profile --json > stats.jsonSee webpack stats API for more details
npx statistician@0 files --dir "./dist" --ignore "\.map$" --ignore "(^|\/)\." --ignore "(^|/)node_modules\/," > files.json| Option | Meaning | Example |
|---|---|---|
| dir | Directory holding the files to measure | --dir "./dist" |
| ignore | Pattern to exclude from summary | --ignore "\.map$" |
Outputs JSON
{
"dist/arrows.svg": 645,
"dist/badges-sprite.svg": 948,
"dist/index.css": 6004,
"dist/index.js": 62304,
"dist/outline.svg": 531,
"dist/shields.svg": 345
}Example using CircleCI env variables
npx statistician@0 github-pull-request --file "./files-before.json,./files-after.json" --bundle "./stats-before.json,./stats-after.json" --user $CIRCLE_PROJECT_USERNAME --repo $CIRCLE_PROJECT_REPONAME --pr $(basename $CIRCLE_PULL_REQUEST) --token $GITHUB_API_TOKENor with Gith App authentication
npx statistician@0 github-pull-request --file "./files-before.json,./files-after.json" --bundle "./stats-before.json,./stats-after.json" --user $CIRCLE_PROJECT_USERNAME --repo $CIRCLE_PROJECT_REPONAME --pr $(basename $CIRCLE_PULL_REQUEST) --appId $GITHUB_APP_ID --appPrivateKey $GITHUB_APP_PRIVATE_KEY| Option | Meaning | Example |
|---|---|---|
| file | pair of file stats to compare (comma separated) | --file "./files-before.json,./files-after.json" |
| bundle | pair of bundle stats to compare (comma separated) | --file "./files-before.json,./files-after.json" |
| user | Repository owner / org (* not necessarily commenter) | --user fiverr |
| repo | Name of repository | --repo some-package |
| pr | Pull request number | --pr 24 |
| token | GitHub API Token | --token s4f5ybwne84bodafzopayrtjrc2koa2k4qb3y1wp |
| appId | GitHub AppID | 206123 |
| appPrivateKey | GitHub App Private Key | -----BEGIN RSA PRIVATE KEY----- \n ABXEogIBCDSKCAQEA1.... |
Two ways of authentication are available.
- Use a personal access token - in this case you will provide the
tokenbut you don't need to provideappIdandappPrivateKey.- Use a Github application - in this case, you will provide
appIdandappPrivateKeybut you don't need to providetoken.
npx statistician@0 diff-summary --file "./files-before.json,./files-after.json" --bundle "./stats-before.json,./stats-after.json"| Option | Meaning | Example |
|---|---|---|
| file | pair of file stats to compare (comma separated) | --file "./files-before.json,./files-after.json" |
| bundle | pair of bundle stats to compare (comma separated) | --bundle "./stats-before.json,./stats-after.json" |
npx statistician@0 summary --file "./files.json" --bundle "./stats.json" [--html]| Option | Meaning | Example |
|---|---|---|
| file | file stats | --file "./files.json" |
| bundle | bundle stats | --bundle "./stats-after.json" |
| html | output in HTML | --html |
