Skip to content

关于ByteDance第六期青训营项目-包的分析工具

Notifications You must be signed in to change notification settings

liliphoenix/npm-packages-analyse

Repository files navigation

字节第六期青训营项目一 - 包的分析工具

上传NPM包的时候,可以直接上传 dist/* 以及 packages/npm-packages-ui/dist/* 即可

1. 需求

  • 需要封装为 node 命令行工具;
  • 支持 xx-cli analyze 命令,用于分析从当前目录 package.json 开始递归查找到的全量依赖关系(包名 & 版本号),分析完成后自动打开网页,并渲染依赖关系图;
    • 注意处理好循环依赖问题,避免陷入死循环;
    • 支持 --depth=n 参数,限制向下递归分析的层次深度;
    • 支持 --json=[file-path] 参数,传入后不再打开网页,只是将依赖关系以 JSON 形式存储到用户指定的文件;
  • 在打开页面中,除了渲染依赖关系图外,期望对依赖关系做出初步分析,例如:
    • 是否包含循环依赖;
    • 同一个 package 是否包含多个版本实例; 分析页面的具体样式,由各组自行决定;的

2. 技术栈

  • 功能开发:
    • 依赖关系图:antv/x6、echarts、D3 等均可;
  • 工程化:
    • 使用 TypeScript 开发;
    • 使用 vitest/jest 实现单元测试;
    • 接入 eslint、lint-staged 工具;

3. 产出

  • 源码,期望提交到 github;
  • 发布到 npm 的 CLI 工具包;
  • 项目说明文档
  • 最迟2023-08-30结束

步骤

  - 前提,记得获取前端的依赖以及项目的依赖,应该是分开处理的。
  1. 先把packages中的vue项目打包,每次调整都要重新打包,主要使用dist中的文件 
  2. 使用build命令进行打包
  2. 使用link命令将一个本地的 npm 包链接到全局环境
  3. 即可测试命令

注意

- package.json 中的name,要与bin中的key一致方可使用
- package.json 中设置type: module,会导致打包后的commander在运行时候异常

About

关于ByteDance第六期青训营项目-包的分析工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •