Package Exports
- vite-plugin-circular-dependency
- vite-plugin-circular-dependency/dist/index.esm.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (vite-plugin-circular-dependency) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
vite-plugin-circular-dependency
English | 中文
A framework-agnostic build-time Vite plugin designed to detect circular imports and self-references, compatible with dynamic and static imports.
DEMO
// Configure the output path,
// a scan report will be generated to the specified path
export default defineConfig({
plugins: [
circleDependency({
outputFilePath: "./circleDep",
}),
],
});
// Without any configuration, it will be printed on the console
export default defineConfig({
plugins: [circleDependency()],
});
Installation
npm i -D vite-plugin-circular-dependency
// yarn add --dev vite-plugin-circular-dependency
// pnpm i --dev vite-plugin-circular-dependencyUsage
Please use this plugin when building
In your vite.config.(js|ts) import the plugin and register it.
import { defineConfig } from "vite";
import circleDependency from "vite-plugin-circular-dependency";
export default defineConfig({
plugins: [circleDependency()],
});Options
export interface Options {
/**
* Rules to include transforming target.
*
* @default [/\.[jt]sx?$/, /\.vue\??/]
*/
include?: FilterPattern;
/**
* Rules to exclude scan target.
*
* @default [/node_modules/, /\.git/]
*/
exclude?: FilterPattern;
/**
* The file address of the scan result output, the default console print
*/
outputFilePath?: string;
// If configured, will output the products of circular references as an interactive HTML application to the specified address
outputInteractiveFilePath?: string;
/**
* Whether to throw an error when a circular import exists
*
* @default true
*/
circleImportThrowErr?: boolean;
/**
* Format the path of the output node.
* By default, vite.config will be used as the root path to generate a relative path
*
* @default function
*/
formatOutModulePath?: (path: string) => string;
/**
* The result of formatted output
* will also affect the data format in the console print or output file
*
* @default (data: CircleData) => data
*/
formatOut?: (data: CircleData) => any;
/**
* Whether to ignore dynamic imports during the scan.
*
* @default false
*
* If the file has the @circular-ignore tag, the module will also be ignored for circular dependency scanning.
* Example:
* // @circular-ignore
* import { example } from './exampleModule';
*/
ignoreDynamicImport?: boolean;
}