🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

circular-dependency-plugin-visualizer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

circular-dependency-plugin-visualizer

A tool to help you visualize and understand circular dependencies in your webpack build.

1.2.3
latest
Version published
Weekly downloads
4.7K
-0.82%
Maintainers
1
Weekly downloads
 
Created

🔄 Circular Dependency Plugin Visualizer

This package was made for use with the circular-dependency-plugin (GitHub|npm) to assist in making sense of your circular dependencies and aid in fixing them.

Installation

Use a package installer like NPM to install the package and the peer dependency circular-dependency-plugin

npm i --save-dev circular-dependency-plugin circular-dependency-plugin-visualizer

Usage

The visualizer takes all the same options as circular-dependency-plugin >=4.4.0 and an additional optional configuration object specific to the visualization.

// webpack.config.js
const CircularDependencyPlugin = require("circular-dependency-plugin");
const visualizer = require("circular-dependency-plugin-visualizer");

module.exports = {
  entry: "./src/index",
  plugins: [
    new CircularDependencyPlugin(
      visualizer(
        {
          exclude: /node_modules/,
          cwd: process.cwd(),
        },
        {
          filepath: path.join(
            __dirname,
            "circular-dependency-visualization.html"
          ),
        }
      )
    ),
  ],
};

Options

propertytypedefault
filepathstringpath.join(process.cwd(), 'circular-dependency-visualization.html')

Visualzation Notes

Node names

You can hover over a node to show the file path.

Node color

The nodes show different colors for the directory that they're in (up to 10 directories). If because of your directory set up, they are all in the same root directory, like src, try setting the cwd property in the circular-dependency-plugin options to the common root.

// webpack.config.js
const path = require('path');

module.exports = {
  ...,
  plugins: [
    new CircularDependencyPlugin(visualizer({
      ...
      cwd: path.resolve(__dirname, 'src')
    })
  ]
};

Stroke animations

The strokes between nodes are animating in the direction of the import, showing the direction of the dependency chain. If a.js imports b.js, you will see the animation go from the a.js node to the b.js node. This is also the same direction as the arrows from the circular-dependency-plugin.

a.js -> b.js

FAQs

Package last updated on 22 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts