@statoscope/stats-validator-plugin-webpack
v5.28.2
Published
Plugin for @statoscope/stats-validator to validate webpack stats
Downloads
32,293
Readme
stats-validator-plugin-webpack
Webpack stats validator plugin for @statoscope/stats-validator
This package contains rules to validate a webpack bundle.
Usage
Install
npm i -D @statoscope/stats-validator-plugin-webpack
Add into
statoscope.config.js
module.exports = { validate: { // add webpack plugin with rules plugins: ['@statoscope/webpack'], // rules to validate your stats (use all of them or only specific rules) rules: { // ensures that the build time has not exceeded the limit (10 sec) '@statoscope/webpack/build-time-limits': ['error', 10000], // ensures that bundle doesn't use specified modules '@statoscope/webpack/restricted-modules': ['error', [/\/some-package\/dist\/some-module\.js/]], // ensures that bundle doesn't use specified packages '@statoscope/webpack/restricted-packages': [ 'error', [ 'lodash', 'browserify-crypto', { name: '@bar/foo', version: '1.0.0 - 4.0.0', description: 'Package is not maintained and has security issues', alternatives: [ '@bar/foo2' ] } ], ], // ensures that bundle hasn't package duplicates '@statoscope/webpack/no-packages-dups': ['error'], // ensure that the download time of entrypoints is not over the limit (3 sec) '@statoscope/webpack/entry-download-time-limits': ['error', { global: { maxDownloadTime: 3000 } }], // ensure that the download size of entrypoints is not over the limit (3 mb) '@statoscope/webpack/entry-download-size-limits': ['error', { global: { maxSize: 3 * 1024 * 1024 } }], // ensures that bundle doesn't have modules with deoptimization '@statoscope/webpack/no-modules-deopts': ['warn'], // compares build time between input and reference stats. Fails if build time diff is the limit (3 sec) '@statoscope/webpack/diff-build-time-limits': ['error', 3000], // diff download size of entrypoints between input and reference stats. Fails if size diff is over the limit (3 kb) '@statoscope/webpack/diff-entry-download-size-limits': [ 'error', { global: { maxSizeDiff: 3 * 1024 } }, ], // diff download time of entrypoints between input and reference stats. Fails if download time is over the limit (500 ms) '@statoscope/webpack/diff-entry-download-time-limits': [ 'error', { global: { maxDownloadTimeDiff: 500 } }, ], // compares usage of specified modules between input and reference stats '@statoscope/webpack/diff-deprecated-modules': ['error', [/\/path\/to\/module\.js/]], // compares usage of specified packages usage between input and reference stats. Fails if rxjs usage has increased '@statoscope/webpack/diff-deprecated-packages': ['error', ['rxjs']], } } }
Rules
- build-time-limits - Ensures that the build time has not exceeded the limit
- diff-build-time-limits - Compares build time between input and reference stats. Fails if build time has increased
- diff-deprecated-modules - Compares usage of specified modules between input and reference stats
- diff-deprecated-packages - Compares usage of specified packages usage between input and reference stats
- diff-entry-download-size-limits - Diff download size of entrypoints between input and reference stats
- diff-entry-download-time-limits - Diff download time of entrypoints between input and reference stats
- entry-download-size-limits - Ensure that the download size of entrypoints is not over the limit
- entry-download-time-limits - Ensure that the download time of entrypoints is not over the limit
- no-modules-deopts - Ensures that bundle doesn't have modules with deoptimization
- no-packages-dups - Ensures that bundle hasn't package duplicates
- restricted-modules - Ensures that bundle doesn't use specified modules
- restricted-packages - Ensures that bundle doesn't use specified packages