文件使用关系分析(File usage relationship analysis)
内部体验测试中,api可能不稳定
秉着学习进步的基础原则,自己造一次轮子来实现需求
- 生成项目目录树
- 分析项目未使用的npm包
- 解析js文件并分析依赖
- cli工具能力提供
- 识别函数对应的注释
- 日志统一/输出
- 完整使用文档提供
- 循环依赖识别警告
- 可基于git仓库进行分析
- 支持多入口识别未使用文件分析
- 支持多入口文件关系识别分析
- 使用ora做loading优化
- 生成svg节点可跳转对应仓库/本地文件
- cli命令行可视化交互
- 精细化识别文件/npm包之间的引用内容
- 缓存生成
- package.json使用type=module
- 支持自建mermaid服务
- 完善代码注释
1.安装
npm i fura --save-dev
2.项目根目录增加.furarc
配置
example
{
"alias": {
"@": "./src"
},
// 识别的入口文件(必须)
"entry": [
"./src/index.ts",
"./src/bin/index.ts"
],
// 包含的目录(可选,无则根目录)
"include": [
"./src"
],
// 忽略的目录名(可选)
"exclude": [
"dist"
]
}
3.运行命令 fura <action>
fura unused
分析项目内未使用的文件以及npm依赖
- npm依赖仅分析
dependencies
内部依赖- 注意会识别出仅开发需要使用的依赖却安装到
dependencies
上的,例如eslint
- 注意会识别出仅开发需要使用的依赖却安装到
fura schema
基于.furarc
配置的entry
内容进行依赖分析输出svg
内容
fura diff-influence [target branch]
指定目标分支进行代码diff关系链路识别,不指定target branch
则分析本地变更与当前分支远端变更的差异
fura pkg <packages>
指定包名分析对应的代码依赖路径,一般用于升级包版本评估影响范围用
example
fura pkg @babel/parser lodash
代码注释建议
- 使用
@name
声明当前文件主要能力,例如(首页/用户头像组件/首页标题) - 使用
@group
声明分组- 页面:
page
- 组件:
component
- 模块(js方法类等):
module
- 页面:
更适合的是使用
@category
,考虑到更优化的编辑器提示以及编写,所以还是选择@group
落地效果
home.js
/**
* 首页入口文件
*
* @name 项目首页
* @group page
*
*/
import Layout from './Layout';
export default () => <Layout>hello home page</Layout>
layout.js
/**
* 首页Layout
*
* @name 首页layout
* @group component
*
* @privateRemarks
*
* 这里会解析,识别出是`首页layout组件`
*/
export default ({children}) => {
return <div>{children}</div>
}
route.js
/**
* 应用路由声明
*/
import Home from './home'
export default () => (
<Routes>
<Route path="/" element={<Home />}>
</Routes>
)
本项目内部分注释由open ai生成