项目变大,依赖变多之后,npm的包依赖关系会变得非常非常复杂,常常让我们看不清:
- 为什么会安装某个特定 package;
- 为什么某些 package 会安装多个版本;
- 子 package 之间形成了怎样的父子依赖关系;
- 是否存在循环依赖;
- 等等。
npa-tool是一个开源的命令行界面交互工具, 能从项目的package.json出发, 得到项目的所有包依赖关系, 并可视化展现。
npm install -g npa-tool
$ npa-cli analyze -h
Usage: npa-cli analyze [options] [root-path]
分析指定目录的包依赖关系
Arguments:
root-path 解析的项目根目录, 默认为当前目录
Options:
--depth <depth> 向下递归分析的层次深度
--json <json-path> 将依赖关系以json形式存储到指定的文件
-h, --help display help for command
示例
npa-cli analyze // 当前目录必须为npm项目目录
npa-cli analyze --json="./result.json" --depth=5 // 限制分析深度, 将结果保存到json文件中
npa-cli analyze --depth=10 ./packages/project1 // 指定分析目录, 限制分析深度
npm 😊
yarn 😊
pnpm 😊
monorepo 😊
windows 😊
mac 😊
linux ?