5.28.3 • Published 7 months ago

@statoscope/stats-validator-plugin-webpack v5.28.3

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

stats-validator-plugin-webpack

npm version Financial Contributors on Open Collective

Webpack stats validator plugin for @statoscope/stats-validator

This package contains rules to validate a webpack bundle.

Usage

  1. Install

    npm i -D @statoscope/stats-validator-plugin-webpack

  2. 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

5.28.3

7 months ago

5.28.2

2 years ago

5.28.1

2 years ago

5.28.0

2 years ago

5.27.0

2 years ago

5.26.2

2 years ago

5.25.0-alpha.0

2 years ago

5.25.1

2 years ago

5.25.0

2 years ago

5.22.1-alpha.0

3 years ago

5.22.1-alpha.2

3 years ago

5.22.1-alpha.1

3 years ago

5.22.1-alpha.3

3 years ago

5.24.0

3 years ago

5.23.0

3 years ago

5.22.0

3 years ago

5.19.3

3 years ago

5.20.1

3 years ago

5.20.0

3 years ago

5.19.1

4 years ago

5.19.0

4 years ago

5.18.0

4 years ago

5.17.0

4 years ago

5.15.0

4 years ago

5.14.1

4 years ago

5.14.0

4 years ago

5.13.1

4 years ago

5.13.0

4 years ago

5.12.1

4 years ago

5.12.0

4 years ago

5.11.2

4 years ago

5.11.0

4 years ago

5.10.3

4 years ago

5.10.1

4 years ago

5.9.0

4 years ago

5.8.1

4 years ago

5.8.0-alpha.0

4 years ago

5.8.0

4 years ago

5.7.3

4 years ago

5.7.2

4 years ago

5.7.1

4 years ago

5.7.0

4 years ago

5.7.0-alpha.0

4 years ago