FormidableLabs / inspectpack

An inspection tool for Webpack frontend JavaScript bundles.
MIT License
591 stars 20 forks source link

[WIP] Experimental Feature: Add versions plugin #171

Open step2yeung opened 3 years ago

step2yeung commented 3 years ago

Opening this PR to generate discussion on this new plugin:

Problem: inspect versions of all the packages bundled in each asset. (#168)

Proposal: The version plugin reports the version information (without the summary) as the version action when duplicatesOnly=true. When duplicatesOnly=false, the plugin reports version information for each package found in each asset.

Sample output

        WARNING in Versions info - All Packages

        Single version packages
        ## `bundle.js`
        * bar
          * 3.4.0
            * Num deps: 1, files: 3
              * scoped@1.2.3 -> bar@~3.4.0
        * baz
          * 1.2.0
            * Num deps: 1, files: 2
              * scoped@1.2.3 -> baz@~1.2.0

        Duplicate version packages
        ## `bundle.js`
        * @scope/foo
          * 1.1.1
            * ~/@scope/foo
              * Num deps: 2, files: 2
              * scoped@1.2.3 -> @scope/foo@^1.0.9
              * scoped@1.2.3 -> flattened-foo@^1.1.0 -> @scope/foo@^1.1.1
          * 2.2.2
            * ~/uses-foo/~/@scope/foo
              * Num deps: 1, files: 1
              * scoped@1.2.3 -> uses-foo@^1.0.9 -> @scope/foo@^2.2.0
        * foo
          * 3.3.3
            * ~/unscoped-foo/~/foo
              * Num deps: 1, files: 2
              * scoped@1.2.3 -> unscoped-foo@^1.0.9 -> foo@^3.3.0
          * 4.3.3
            * ~/unscoped-foo/~/deeper-unscoped/~/foo
              * Num deps: 1, files: 2
              * scoped@1.2.3 -> unscoped-foo@^1.0.9 -> deeper-unscoped@^1.0.0 -> foo@^4.0.0

TODOs