@sugarat/ghost
v0.2.1
Published
phantom dependency scanning tool - 幽灵依赖扫描工具
Downloads
6
Maintainers
Readme
@sugarat/ghost
phantom dependency scanning tool - 幽灵依赖扫描工具
Quick Started
npm i -g @sugarat/ghost
# default scan "src/**/**"
ghost scan
set scan dir
or file
ghost scan [target...]
# a directory
ghost scan packages/pkg1/src
# a file
ghost scan src/index.ts
# support glob pattern
ghost scan src/**/** packages/a/**/**
set package.json
path
# default process.cwd()/package.json
ghost scan src -p <paths...>
ghost scan src -p ./package.json otherDir/package.json
Advanced Usage
CLI
Exclude phantom dependency
ghost scan [pattern...] --exclude-pkg [pkgName...]
ghost scan src/index.tsx --exclude-pkg react react-dom
Exclude Scan Files
ghost scan [pattern...] -e [pattern...]
ghost scan [pattern...] --exclude [pattern...]
ghost scan src -e src/index.tsx
Local
npm i @sugarat/ghost
# or
yarn add @sugarat/ghost
# or
pnpm add @sugarat/ghost
Option
export interface GhostOptions {
/**
* need exclude pkg pattern
*/
exclude?: ExcludePattern | ExcludePattern[]
/**
* include node lib {fs, path, etc}
* @default false
*/
includeNodeLib?: boolean
/**
* need exclude scan files pattern
*/
excludeFilePattern?: string | string[]
/**
* some alias config like `@components` `@apis` etc
*/
alias?: Record<string, string>
}
declare type ExcludePattern = string | RegExp;
/**
* @param paths target file or directory (support glob pattern)
* @param pkgJsonPath package.json path
*/
declare function findGhost(paths: string | string[], pkgJsonPath: string, options?: GhostOptions): string[];
ESM
import { findGhost } from '@sugarat/ghost'
// or
import { findPhantom } from '@sugarat/ghost'
CJS
const { findGhost } = require('@sugarat/ghost')
Usage
// simple
findGhost('src/**/**','./package.json')
// specific
const phantomDependency = findGhost(
path.join(__dirname, 'src'),
path.join(process.cwd(), 'package.json')
)
More Info
ghost --help
ghost scan --help
More Details See Source Utils