To illustrate the objective, take the following dependency graph.
┌───────┐
│ │
│ A │
│ │
└───────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐
│ │ │ │ │ │
│ B │ │ C │ │ D │
│ │ │ │ │ │
└───────┘ └───────┘ └───────┘
│
┌─────┴─────┐
▼ ▼
┌───────┐ ┌───────┐
│ │ │ │
│ E │ │ F │
│ │ │ │
└───────┘ └───────┘
│
│
▼
┌───────┐
│ │
│ G │
│ │
└───────┘
The D-subtree is isolated from the rest of the dependency graph. This plugin (or extension of
interlock-shakedown) should perform Rollup.js-like processing for the D-subtree only. E, F, and G
should be merged into D using the same patterns already used in interlock-shakedown and then
pruned from the tree.
This will reduce start-up times for small modules, allow for DCE on the isolated parts of the graph,
and result in smaller bundles.
To illustrate the objective, take the following dependency graph.
The D-subtree is isolated from the rest of the dependency graph. This plugin (or extension of
interlock-shakedown) should perform Rollup.js-like processing for the D-subtree only. E, F, and Gshould be merged into D using the same patterns already used in
interlock-shakedownand thenpruned from the tree.
This will reduce start-up times for small modules, allow for DCE on the isolated parts of the graph,
and result in smaller bundles.