@toptal/front-lock-guard v0.0.2
Front lock guard
This plugin locks bundle sizes and used packages in project to properly require approval on PR.
env
FORCE
- Type: Boolean
- Default: false
Whether to generate new file regardless of skipped deltas or skipped pacakages.
LOCK
- Type: Boolean
- Default: false
If sizes should be only checked or locked to the lock file.
DRY_RUN
- Type: Boolean
- Default: false
DRY_RUN=1 will check only for changed packages in this way it's easy to run it with lint as it doesn't try to build bundles and it is really fast.
options
options.fileName
- Type: String
- Default: front-guard.lock.yml
Output file where stats are written.
options.entryFilter
- Type: RegExp | Function
- Default: - RegExp(/^.*$/)
Logic which entry points should be checked for stats.
options.chunkFilter
- Type: RegExp | Function
- Default: - RegExp(/^.*$/)
Usually entries include also .map or .css chunks in bundle, so to be able to filter only .js chunks you can use new RegExp(/^.*\.js$/) 
options.bloatDetect
- Type: Function -> boolean
- Call Params: bloatDetect(newSize, oldSize)
- Default: 5% absolute && 5% relative increase
Callback which will decide if size is considered as bloating
 bloatDetect: (oldSize, newSize) => {
      const relative = Math.ceil(((newSize / oldSize) - 1) * 100)
      const absolute = newSize - oldSize
      return relative >= 5 && absolute >= 5
    }options.packageWhitelist
- Type: Array
- Default: []
Packages which are treated as whitelisted. For those package there will be no hash changed in lock files even if they were updated. Used for internal packages or features bundled as separate packages.
options.reportingLevel
- Type: String
- Default value: 'error'
The level of reporting problems, like bundle bloating or dependency hash mismatch.
Possible values: 'error','warning'
- 'error'level will stop the process with a non-zero exit code on the first spotted problem.
- 'warning'level will just print the error message to the console