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.json
See 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_TOKEN
or 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
token
but you don't need to provideappId
andappPrivateKey
.- Use a Github application - in this case, you will provide
appId
andappPrivateKey
but 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 |